GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Contribution guide Contribution guide
Chapman Flack edited this page
PL/Java is an open source project and contributions are vital for its success. In fact, all development of the project is done using contributions. Here are a few guide lines that will help you submit a contribution.
You should let the community know what you're planning to do by discussing it on the PL/Java Mailing List. In many cases it might also be a good idea to first create an issue where the details of what needs to be done can be discussed (the actual pull-request is an issue in itself so in case you already have something, that issue is probably sufficient).
In many projects, active development all happens on a branch called something like main (or sometimes master in a project as old as PL/Java) and, if there are older branches supporting released versions, selected changes get "backpatched" into those. PL/Java's development does not, at present, fit into that model. There are currently (as of mid-2025) two distinct threads of development taking place in the project:
Under the current development practice, maintenance changes that are made on
Under these conditions, you have these most-likely choices of branch to form the base of your contribution:
Some projects request that you squash multiple commits into one before submitting a pull request, but that is not wanted in the PL/Java project. Any pull request more involved than the simplest bug fix should probably consist of more than one commit. Each commit should cover a clear step along the path from PL/Java-without-the-new-feature to PL/Java-with-it, and the commit message for each step should explain that step, and explain whatever key decisions led to that step being done that way and not some other way. This does not mean that a pull request should be all the commits that you made in your local repository clone as you developed the contribution, with all the times you backtracked, fixed typos, and changed your mind. As soon as you feel you have something ready to submit, you should look back over the history of your commits and think of a way to organize them into a deliberate sequence of steps, clear enough for another reader to easily follow, for getting from PL/Java-without-the-feature to PL/Java-with. At that point, you should become familiar with If you have interactively revised a history of commits, then the next time you push to a git repository where the old commits existed, a "force-push" will be needed because the history has changed. That is a non-problem as long as you are working locally and pushing into your own locally-cloned repository. Once you have pushed some commits up to a shared repository, on the other hand, it is possible other people have linked to those or based branches on them, and a force-push that changes them will create problems for others. Therefore, it makes sense to force-push freely and often in your own local repository, as much as you need while reorganizing your commits into a coherent story. But once you have pushed those commits up to a visible repository, it is best to leave them as they are. If you have pushed some commits before your development is complete, then as you continue the work in a further sequence of commits, you can again freely revise that sequence locally until you have another sequence ready to push, and then push that sequence upstream and leave it alone as well. If you discover a mistake in something already pushed and publicly visible, that should just be fixed somewhere in your next sequence of commits. Most rules can be bent: if you have just pushed something up to a public repository and then recognized a mistake minutes or seconds later, a force-push may be ok if no one else is likely to have saved references to your branch during that time. What should be included in a commit message? The three basic things to include are:
Here is a sample commit message with all that information: Adds UTF-8 encoding to POM properties Some POM's did not have the source encoding specified. This caused unnecessary warning printouts during build. This commit ensures that all POM's includes the correct declaration for UTF-8. Closes #1234 The summary should be kept short, no more than 49 characters, and
the lines in the detailed message should not exceed 72 characters.
These limits are recommended to get the best output possible from
the The issue number is optional and should only be included when the commit really closes an issue. The close will then occur when the pull request is merged. Clone this wiki locally |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |