mirror of
https://github.com/metadata-swiss/opendata-swiss.git
synced 2026-10-18 20:15:40 +00:00
Read-only mirror of https://github.com/metadata-swiss/opendata-swiss — Bundesamt für Statistik. Issues & pull requests at the source.
- Vue 31.9%
- Java 31.2%
- TypeScript 18.3%
- JavaScript 8.1%
- Python 6.8%
- Other 3.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .changeset | ||
| .github | ||
| .husky | ||
| opendata.swiss | ||
| .gitignore | ||
| .prettierignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
metadata.swiss
Monorepo for the opendata.swiss metadata infrastructure, including the portal frontend application and custom Piveau Consus modules.
Projects Overview
The repository is organized as an npm workspace managing both JavaScript/TypeScript applications and Java/Maven modules:
| Package / Artifact Name | Directory Path | Tech Stack | Description |
|---|---|---|---|
piveau-opendata-swiss |
opendata.swiss/ui |
Nuxt 4, Vue 3, TypeScript | The main web portal user interface for opendata.swiss |
piveau-consus-filter |
opendata.swiss/piveau_modules/piveau-consus-filter |
Java 17, Vert.x, Maven | Piveau Consus pipe module for filtering RDF datasets |
piveau-consus-importing-csw |
opendata.swiss/piveau_modules/piveau-consus-importing-csw |
Java 17, Vert.x, Maven | Piveau Consus pipe module for importing data via CSW |
piveau-consus-importing-showcases |
opendata.swiss/piveau_modules/piveau-consus-importing-showcases |
Java 17, Vert.x, Maven | Piveau Consus pipe module for harvesting showcases |
Additional components in the repository:
opendata.swiss/metadata: Metadata catalogues, pipelines, system tests, and harvester scripts.opendata.swiss/archimate: Architecture models and documentation.
Versioning with Changesets
This monorepo uses Changesets (@changesets/cli) to manage semantic versioning, changelogs, and release tracking across all projects.
How Changesets Versions JS and Maven Projects
Changesets natively operates on npm workspaces configured in the root package.json:
{
"workspaces": [
"opendata.swiss/ui",
"opendata.swiss/piveau_modules/*"
]
}
- UI Application (
opendata.swiss/ui): Uses standardpackage.jsonmetadata for the Nuxt/Vue frontend. - Piveau Maven Modules (
opendata.swiss/piveau_modules/*): Each Java module contains both a Mavenpom.xmland a minimalpackage.jsondefining"name"and"version". This lightweight bridge allows@changesets/cliand GitHub Actions to treat Java/Maven projects as standard workspace packages, enabling unified changelog tracking and version management.
Configuration
Changesets settings are defined in .changeset/config.json:
baseBranch:mainchangelog: Uses@changesets/changelog-githublinked toopendata-swiss/metadata.swiss.commit: Enabled for automated version commit generation.
Developer Workflow
1. Adding a Changeset
When submitting a pull request that modifies one or more projects, add a changeset entry:
npx changeset
- Select the packages changed (e.g.,
piveau-opendata-swiss,piveau-consus-filter). - Choose the SemVer bump type for each selected package:
- patch: Bug fixes, minor adjustments, dependencies.
- minor: New features or backward-compatible additions.
- major: Breaking changes.
- Provide a clear summary description of the changes.
- Commit the newly generated file in
.changeset/*.mdto your branch and include it in your Pull Request.
2. Automated Release Workflow
Releases are handled automatically via GitHub Actions:
- Push to
main: When PRs with changesets are merged intomain, the.github/workflows/release.yamlworkflow runschangesets/action@v2. - Version PR: Changesets opens or updates a pull request titled
"Version Packages". This PR increments versions inpackage.jsonand updatesCHANGELOG.mdfiles for affected packages. - Release & Tagging: When the
"Version Packages"PR is merged intomain, releases and git tags are created automatically.