When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
- Ensure any unnecessary install or build dependencies and other files are removed before the end of the layer when doing a build.
- Explain the changes and update the README.md file and other documentation if necessary.
- Be ready to communicate about the Pull Request and make changes if required by reviewers.
- The Pull Request may be merged once it passes the review and automatic checks.
We use the standard Gitflow Workflow:
- master branch is used only for releases (and eventually hotfixes), this branch is also protected on GitHub (pull requests with review and all checks must pass)
- develop branch is used for development and as a base for following development branches of features, support stuff, and as a base for releases
- feature/* (base develop, squash-merged back to develop when done)
- support/* (like the feature but semantically different, not the feature but some chore, e.g., cleanup or update of Dockerfile)
- release/* (base develop, merged to master and develop when ready for release+tag)
- hotfix/* (base master, merged to master and develop)
Please note, that for tasks from our Jira, we use
such as [FOR-XX]
identifying the project and task number.
For the release management we use (aside from the Gitflow Workflow):
- Semantic versioning
- Release Candidates - X.Y.Z-rc.N should be created if don’t expect any problems (in that case use alpha or beta), and make a walkthrough to verify its functionality according to the manuals finally - it also verifies that the documentation is up to date with the new version.
- CHANGELOG.md
- GitHub releases and tags - make the release using GitHub (or hub extension), Travis CI will automatically upload ZIP and TGZ distribution files there - better verify.
- Docker Hub image - in case of release, Docker image with the same tag will be created automatically.
Also, never forget to update the joint FAIR Data Point documentation!
During the life-cycle of this extension, the OpenRefine will evolve in parallel. To handle this correctly, in case of new OpenRefine version, we use this process:
- Start new support branch when necessary changes are made to use the newer version of OpenRefine. Don’t forget to
update
project-repository
, assembly, documentation, andDockerfile
. Then merge to develop. - Create a new release with higher version according to OpenRefine version and semantic versioning (major breaks compatibility, minor with new features, patch just hotfixes).
- Filter out unfinished work that is no longer needed because of new OpenRefine (if any).
- Update all other branches.
- From now on, the newer version of OpenRefine is supported. For future releases, you should indicate if it works also with the previous or not. In case of need, a new branch legacy/OpenRefine-X.Y can be created for hotfixes.
NOTE: This still needs to be verified by practice!