forked from LibreGaming/matchbot
Compare commits
4 Commits
jar-genera
...
master
Author | SHA1 | Date |
---|---|---|
Sebastian Crane | b1079768ee | |
Sebastian Crane | 9ed4b34083 | |
Sebastian Crane | 0a939da401 | |
Sebastian Crane | 93306d6d34 |
|
@ -5,6 +5,12 @@
|
|||
|
||||
`matchbot` uses [version 2.0.0 of the Semantic Versioning](https://semver.org/spec/v2.0.0.html) scheme.
|
||||
|
||||
## [1.1.0] - 2022-05-14
|
||||
|
||||
* Add build system for generating POM, JAR and uberjar (standalone JAR) files
|
||||
|
||||
* Improve code quality
|
||||
|
||||
## [1.0.1] - 2022-04-01
|
||||
|
||||
* Fix vulnerability that causes serialised data to be deleted when it contains certain user input
|
||||
|
@ -17,5 +23,6 @@
|
|||
|
||||
* Initial release
|
||||
|
||||
[1.1.0]: https://git.libregaming.org/LibreGaming/matchbot/releases/tag/1.1.0
|
||||
[1.0.1]: https://git.libregaming.org/LibreGaming/matchbot/releases/tag/1.0.1
|
||||
[1.0.0]: https://git.libregaming.org/LibreGaming/matchbot/releases/tag/1.0.0
|
||||
|
|
|
@ -40,3 +40,37 @@ For example:
|
|||
> `;; SPDX-FileCopyrightText: 2022 Joe Bloggs <joe@example.com>`
|
||||
|
||||
If the copyright to your contributions is held by your employer, put your employer's name in brackets after your own name.
|
||||
|
||||
## Build system
|
||||
|
||||
### Building a POM file
|
||||
|
||||
The POM file lists the dependencies needed to run `matchbot` as well as some additional information that can help people learn more about `matchbot`.
|
||||
To generate a POM file, run `clojure -T:build pom`; you should find the generated `POM.xml` file in the `target/` directory.
|
||||
|
||||
### Building a JAR file
|
||||
|
||||
A JAR file contains all the source code of `matchbot` in a form that the JVM can load and pass to the Clojure compiler to run.
|
||||
To generate a JAR file, run `clojure -T:build jar`; again, you should find the JAR file called something like `matchbot-x.x.x.jar` in the `target/` directory.
|
||||
|
||||
### Building an uberjar
|
||||
|
||||
An uberjar is much like a normal JAR file, but comes with all the dependencies of `matchbot` bundled in it.
|
||||
This means that it can run directly on the JVM without Clojure being installed (it contains a copy of the Clojure compiler itself).
|
||||
To generate an uberjar, run `clojure -T:build uber`; you should find the uberjar called something like `matchbot-x.x.x-standalone.jar` in the `target/` directory.
|
||||
Please note that if you distribute an uberjar, you must not only comply with the licence of `matchbot`, but also the licences of all `matchbot`'s dependencies, both transitive and intransitive.
|
||||
|
||||
## Versioning and release process
|
||||
|
||||
### Semantic Versioning
|
||||
|
||||
`matchbot` uses [version 2.0.0 of the Semantic Versioning](https://semver.org/spec/v2.0.0.html) scheme, but there is still ambiguity in what exactly comprises the 'Public API' (used for determining the right part of the version to increment) for something like `matchbot`.
|
||||
This 'Public API' is defined for `matchbot` as everything that is accessible by the end user or administrator of a `matchbot` instance.
|
||||
For example, a change that requires the configuration file to be updated warrants a major version increment because it effects the administrator; however, a change to the structure of the internal namespaces would only require a patch level version increment because it doesn't affect either the administrator or the end user.
|
||||
|
||||
### Release process
|
||||
|
||||
At some point after a new feature has been added to `matchbot` or a bug has been fixed, a release will be made.
|
||||
Once a suitable version increment for the type of changes has been determined, the `CHANGELOG.md` file at the root of the repository will be updated with release notes documenting the changes made in that version.
|
||||
Then, a JAR file and a POM file will be produced using the build system (see above for more information), signed using GPG and finally uploaded to [Maven Central](https://central.sonatype.org/).
|
||||
Currently this process is done by [Sebastian Crane](https://git.libregaming.org/seabass); if you would like to help with making releases, please familiarise yourself with the process (you can try everything locally except upload to Maven Central) and get in contact! 😀
|
||||
|
|
Loading…
Reference in New Issue