This is the code repository for the DataCite Events REST API.
Local application development is dependent on Docker. Ensure that is installed locally.
Local application development is dependent on DataCite LocalStack Repository. Ensure that this is cloned locally.
Local application development is dependent on Lupo. Ensure this is cloned locally.
Semantic versioning (SemVer) is a way of numbering software releases using the format MAJOR.MINOR.PATCH (like 1.4.2
) to indicate the type of changes made.
Semantic versioning helps developers and users quickly understand whether an update will:
- break existing code,
- add new features, or
- just fix bugs.
This makes it easier to manage dependencies and upgrades safely.
-
MAJOR version (
X.y.z
):
Increment when you make incompatible (breaking) changes.
Example:1.2.3
→2.0.0
(old code may break) -
MINOR version (
x.Y.z
):
Increment when you add new, backward-compatible features.
Example:1.2.3
→1.3.0
(new features, old code still works) -
PATCH version (
x.y.Z
):
Increment when you make backward-compatible bug fixes.
Example:1.2.3
→1.2.4
(only bug fixes, safe to update)
Version Change | What Happened | Example |
---|---|---|
1.2.3 → 2.0.0 | Breaking change | MAJOR |
1.2.3 → 1.3.0 | New feature, no breakage | MINOR |
1.2.3 → 1.2.4 | Bug fix, no breakage | PATCH |
- Pre-release:
2.0.0-beta
,1.3.0-rc.1
- Build metadata:
1.2.3+exp.sha.5114f85
Semantic versioning uses a 3-part number to clearly communicate the impact of software changes, helping everyone update safely and confidently.
For more: semver.org
Start the DataCite Localstack Container.
docker compose up --build
Start the Lupo Container.
docker compose -f ./docker-compose.localstack.yml up --build
Start the Events Service Container.
docker compose up --build
The API is available locally at http://localhost:8700
Currently the database and it's schema is managed by the Lupo application. The Events Service simply communicates with this database. The Events services does not own any part of the database and is not responsible for mutating the schema. For local and testing purposes we use the activerecord-nulldb-adapter Ruby Gem.
- Add workers to the app/workers directory
- Ensure you set the shoryuken_options e.g.
shoryuken_options queue: -> { "#{ENV['RAILS_ENV']}\_events" }, auto_delete: true
- Queues use environment prefixes. The prefix is set with the environment variable RAILS_ENV locally.
- Workers are spun up by default on app start.
- The environment variable DISABLE_QUEUE_WORKER is used in development to switch the worker on or off when you start the container.
- The DISABLE_QUEUE_WORKER is set to false by defalt in the docker-compose.yml i.e. DISABLE_QUEUE_WORKER=false
- If you you want to disable the queue workers from starting up you can set DISABLE_QUEUE_WORKER to true i.e. DISABLE_QUEUE_WORKER=true