Common and utility classes for Spoofax 3 projects.
The master
branch of this repository can be built in isolation.
However, the develop
branch must be built via the devenv repository, due to it depending on development versions of other projects.
This repository is built with Gradle, which requires a JDK of at least version 8 to be installed. Higher versions may work depending on which version of Gradle is used.
To build this repository, run ./gradlew buildAll
on Linux and macOS, or gradlew buildAll
on Windows.
This repository is built on:
- GitHub actions via
.github/workflows/build.yml
. Only themaster
branch is built here. - Our Jenkins buildfarm via
Jenkinsfile
which uses our Jenkins pipeline library.
This repository is published via Gradle and Git with the Gitonium and Gradle Config plugins. It is published to our artifact server in the releases repository.
First update CHANGELOG.md
with your changes, create a new release entry, and update the release links at the bottom of the file.
Then, commit your changes and merge them from the develop
branch into the master
branch, and ensure that you depend on only released versions of other projects (i.e., no SNAPSHOT
or development versions).
All dependencies are managed in the depconstraints/build.gradle.kts
file.
To make a new release, create a tag in the form of release-*
where *
is the version of the release you'd like to make.
Then first build the project with ./gradlew buildAll
to check if building succeeds.
If you want our buildfarm to publish this release, just push the tag you just made, and our buildfarm will build the repository and publish the release.
If you want to publish this release locally, you will need an account with write access to our artifact server, and tell Gradle about this account.
Create the ./gradle/gradle.properties
file if it does not exist.
Add the following lines to it, replacing <username>
and <password>
with those of your artifact server account:
publish.repository.metaborg.artifacts.username=<username>
publish.repository.metaborg.artifacts.password=<password>
Then run ./gradlew publishAll
to publish all built artifacts.
You should also push the release tag you made such that this release is reproducible by others.
Copyright 2018-2024 Delft University of Technology
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "as is" basis, without warranties or conditions of any kind, either express or implied. See the License for the specific language governing permissions and limitations under the License.