Skip to content
This repository has been archived by the owner on Dec 20, 2022. It is now read-only.
/ gem Public archive

ARCHIVED: Git Environment Manager (GEM)

License

Notifications You must be signed in to change notification settings

aposin/gem

Repository files navigation

Git Environment Manager (GEM)

Build CodeQL GitHub top language CLA assistant GitHub

GEM (Git Environment Manager) is a git branch manager which:

  • Defines environments based on one or several shared repositories for protected branches, using worktrees to minimize number of clones.
  • Enforces a feature-branch workflow to work with different providers of issues, including branch creation, and local/remote handling.
  • Is extensible by plug-ins.

Building

To build a released version, checkout the version tag beforehand.

To build the executables for Windows and Linux, run on the root folder:

mvn verify

Both linux and windows distributions are located under products\org.aposin.gem.product\target\products.

This builds the alpha_ version of the product and plug-ins on the repository. Check the "Releasing" section for how to build a release.

Versioning

This project adheres to Semantic Versioning (SemVer). Maintainers are in charge of updating the version and add to the CHANGELOG.md any relevant information.

Currently, except the org.aposin.gem.parent project, the rest have the same SemVer (with different build number). This ensures that a product with all org.aposin.gem plug-ins on the same version is fully functional.

ℹ️ As a configuration project, the org.aposin.gem.parent is in the same version unless required for the process to identify major changes.

To help updating project versions, the tycho-versions-plugin is included in the parent-pom. Run mvn -DnewVersion=${nextVersion}.qualifier tycho-versions:set-version with ${newVersion} being the new version.

Releasing a new version

For preparing a new release,:

  • Update the version if relevant to the SemVer specs and it is not up-to-date. If some changes are not included yet, update also the CHANGELOG.md with them.
  • Update the Unreleased header with the new version (maintaining this title) and add the link to the (still not existing) release page at the bottom.
  • Update the product file to point to a frozen version branch of the gem-config repository. You should create the branch on that repository from the main version and set it as protected.
  • Open a PR (or merge if you have permissions).
  • Once it is merged, tag the version and publish the release on GitHub.

To build the release version (and attach to the GitHub release if required), you should add the -Drelease property to the build command.

After this is done, no more PR should be accepted until the versions are updated to the next patch version. In addition to update the version numbers, the product file should point again to the main gem-config branch to allow changes in the configuration format.

About

ARCHIVED: Git Environment Manager (GEM)

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages