This repository is designed to allow Spring users and team members to contribute self-contained projects reproducing issues logged against Spring's JIRA issue tracker at https://jira.springsource.org. It offers the following advantages over attaching .zip or even patch files to JIRA issues:
- A streamlined process for evaluating issues so more bugs get fixed more quickly!
- A set of template projects to choose from
- Two-way communication with the Spring team based on working code
- Improved code sharing across the Spring team
- A back-reference and a valuable archive of small Spring projects across a wide range of use cases and features
All around a better way of interacting with the Spring team.
- First, search SPR JIRA to see if your issue has already been reported. If so, there may already be a reproduction issue in this repository!
- If after searching an issue does not already exist, create a new issue
- You will now have an issue named, for example, "SPR-9876". Make note of this, as you'll need it below when creating your project.
Assuming you've encountered and created an issue in the core Spring Framework project you can now add a project to demonstrate it.
- Create a Github account if you don't already have one
- Fork this repository and clone it locally
The idea is to create the smallest possible project to demonstrate the issue. The project may be built with Maven or Gradle, and must contain only sources, XML and other necessary text files. No JARs, please!
For the purpose of these instructions, we'll assume your new JIRA issue ID is "SPR-9876"
1. In your local clone of this repository, copy the appopriate 'template' directory. Their names start with SPR-0000
.
For Core Spring Framework issues:
cd spring-framework-issues
cp -r SPR-0000 SPR-9876
For Spring MVC issues:
cd spring-framework-issues
cp -r SPR-0000-war-xml SPR-9876
2. Modify the pom.xml to change the artifactId to your JIRA issue ID.
<groupId>org.springframework.issues</groupId>
<artifactId>SPR-9876</artifactId>
<version>1.0-SNAPSHOT</version>
3. Review the list of dependencies and version numbers, uncommenting, adding or deleting as necessary.
4. Import the project into your IDE and modify it as necessary to reproduce your issue.
- It is already a buildable Maven project, so you may use your IDE's built-in support for Maven to do the importing.
5. Add, commit, and push your local fork
git add SPR-9876
git commit -m "Add repro project for SPR-9876"
git push
6. Send a pull request from the Github web interface
- The Spring Framework team will be notified and will look at your request
... and that's it!
In certain cases, it may make sense to submit a project for improvement requests. Feel free to submit a project here for your issue if you think it will help us to understand the scenario better.
What about patches against the Spring Framework itself? Should I still attach those to my JIRA issue?
For now, yes. It is possible that Spring Framework will move from it's current home in SVN to Github -- when that happens, we may consider pull requests against forks of that repository.
Yes, you may still attach zip files if it works best for you. Submitting pull requests against this repository as described above is the mechanism that the Spring team prefers, but what's most important is that we get code from you that reproduces the problem! Please consider this approach, but zip files are still OK.