s2dm 0.16.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- s2dm-0.16.2/.bumpversion.toml +24 -0
- s2dm-0.16.2/.github/dependabot.yml +19 -0
- s2dm-0.16.2/.github/workflows/ci.yml +64 -0
- s2dm-0.16.2/.github/workflows/docgen.yml +85 -0
- s2dm-0.16.2/.github/workflows/release.yml +225 -0
- s2dm-0.16.2/.gitignore +184 -0
- s2dm-0.16.2/.gitlint +31 -0
- s2dm-0.16.2/.gitmodules +3 -0
- s2dm-0.16.2/.migration/.bumpversion.toml +18 -0
- s2dm-0.16.2/.migration/docs/modeling-guide.md +1 -0
- s2dm-0.16.2/.migration/docs/setup-guide.md +166 -0
- s2dm-0.16.2/.migration/setup-repository.sh +174 -0
- s2dm-0.16.2/.migration/workflows/migrate.yml +38 -0
- s2dm-0.16.2/.pre-commit-config.yaml +41 -0
- s2dm-0.16.2/CHANGELOG.md +681 -0
- s2dm-0.16.2/CONTRIBUTING.md +288 -0
- s2dm-0.16.2/LICENSE +373 -0
- s2dm-0.16.2/PKG-INFO +49 -0
- s2dm-0.16.2/README.md +20 -0
- s2dm-0.16.2/actions/s2dm-compose/README.md +151 -0
- s2dm-0.16.2/actions/s2dm-compose/action.yml +169 -0
- s2dm-0.16.2/actions/s2dm-publish/README.md +215 -0
- s2dm-0.16.2/actions/s2dm-publish/action.yml +409 -0
- s2dm-0.16.2/cliff.toml +88 -0
- s2dm-0.16.2/docs-gen/CHANGELOG.md +57 -0
- s2dm-0.16.2/docs-gen/LICENSE +21 -0
- s2dm-0.16.2/docs-gen/README.md +75 -0
- s2dm-0.16.2/docs-gen/assets/favicon.png +0 -0
- s2dm-0.16.2/docs-gen/assets/favicon.svg +5 -0
- s2dm-0.16.2/docs-gen/assets/images/.gitkeep +0 -0
- s2dm-0.16.2/docs-gen/assets/js/custom.js +29 -0
- s2dm-0.16.2/docs-gen/assets/scss/common/_custom.scss +1 -0
- s2dm-0.16.2/docs-gen/assets/scss/common/_variables-custom.scss +13 -0
- s2dm-0.16.2/docs-gen/assets/svgs/.gitkeep +0 -0
- s2dm-0.16.2/docs-gen/config/_default/hugo.toml +87 -0
- s2dm-0.16.2/docs-gen/config/_default/languages.toml +17 -0
- s2dm-0.16.2/docs-gen/config/_default/markup.toml +33 -0
- s2dm-0.16.2/docs-gen/config/_default/menus/menus.en.toml +16 -0
- s2dm-0.16.2/docs-gen/config/_default/module.toml +97 -0
- s2dm-0.16.2/docs-gen/config/_default/params.toml +140 -0
- s2dm-0.16.2/docs-gen/config/babel.config.js +17 -0
- s2dm-0.16.2/docs-gen/config/development/hugo.toml +2 -0
- s2dm-0.16.2/docs-gen/config/next/hugo.toml +2 -0
- s2dm-0.16.2/docs-gen/config/postcss.config.js +64 -0
- s2dm-0.16.2/docs-gen/config/production/hugo.toml +2 -0
- s2dm-0.16.2/docs-gen/content/_index.md +34 -0
- s2dm-0.16.2/docs-gen/content/docs/_index.md +11 -0
- s2dm-0.16.2/docs-gen/content/docs/approach-overview/_index.md +6 -0
- s2dm-0.16.2/docs-gen/content/docs/approach-overview/actively-developed.md +8 -0
- s2dm-0.16.2/docs-gen/content/docs/approach-overview/automated.md +8 -0
- s2dm-0.16.2/docs-gen/content/docs/approach-overview/optional-extensions.md +8 -0
- s2dm-0.16.2/docs-gen/content/docs/data-modeling-guideline/_index.md +5 -0
- s2dm-0.16.2/docs-gen/content/docs/data-modeling-guideline/how-to.md +82 -0
- s2dm-0.16.2/docs-gen/content/docs/data-modeling-guideline/pre-defined-elements.md +120 -0
- s2dm-0.16.2/docs-gen/content/docs/introduction/_index.md +15 -0
- s2dm-0.16.2/docs-gen/content/docs/introduction/introduction.md +33 -0
- s2dm-0.16.2/docs-gen/content/docs/tools/_index.md +6 -0
- s2dm-0.16.2/docs-gen/content/docs/tools/api.md +19 -0
- s2dm-0.16.2/docs-gen/content/docs/tools/automation.md +6 -0
- s2dm-0.16.2/docs-gen/content/docs/tools/cli.md +1946 -0
- s2dm-0.16.2/docs-gen/content/docs/tools/units-cli.md +169 -0
- s2dm-0.16.2/docs-gen/content/examples/examples-introduction/_index.md +15 -0
- s2dm-0.16.2/docs-gen/content/examples/examples-introduction/introduction.md +30 -0
- s2dm-0.16.2/docs-gen/content/examples/multiple-classification-schemes/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/multiple-classification-schemes/multiple-classification-schemes.md +19 -0
- s2dm-0.16.2/docs-gen/content/examples/multiple-domains/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/multiple-domains/multiple-domains.md +45 -0
- s2dm-0.16.2/docs-gen/content/examples/seat-capabilities/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/seat-capabilities/seat-capabilities.md +19 -0
- s2dm-0.16.2/docs-gen/content/examples/seat-domain-model/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/seat-domain-model/graphql-voyager.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/seat-domain-model/schema-documentation.md +15 -0
- s2dm-0.16.2/docs-gen/content/examples/seat-domain-model/seat-domain-model.md +25 -0
- s2dm-0.16.2/docs-gen/content/examples/specification-history-registry/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/specification-history-registry/specification-history-registry.md +19 -0
- s2dm-0.16.2/docs-gen/content/examples/trailer-domain-model/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/trailer-domain-model/graphql-voyager.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/trailer-domain-model/trailer-domain-model.md +24 -0
- s2dm-0.16.2/docs-gen/content/examples/version-bump-cli/_index.md +17 -0
- s2dm-0.16.2/docs-gen/content/examples/version-bump-cli/version-bump-cli.md +176 -0
- s2dm-0.16.2/docs-gen/content/test.md +0 -0
- s2dm-0.16.2/docs-gen/layouts/_partials/footer/script-footer-custom.html +13 -0
- s2dm-0.16.2/docs-gen/layouts/_partials/head/custom-head.html +62 -0
- s2dm-0.16.2/docs-gen/layouts/_partials/head/script-header.html +1 -0
- s2dm-0.16.2/docs-gen/layouts/_partials/sidebar/docs-toc-desktop.html +20 -0
- s2dm-0.16.2/docs-gen/layouts/_partials/sidebar/graphql-voyager-assets.html +43 -0
- s2dm-0.16.2/docs-gen/layouts/home.html +129 -0
- s2dm-0.16.2/docs-gen/layouts/shortcodes/graphql-voyager-builtin.html +250 -0
- s2dm-0.16.2/docs-gen/layouts/shortcodes/graphql-voyager.html +101 -0
- s2dm-0.16.2/docs-gen/layouts/shortcodes/img.html +21 -0
- s2dm-0.16.2/docs-gen/layouts/single.html +58 -0
- s2dm-0.16.2/docs-gen/netlify.toml +35 -0
- s2dm-0.16.2/docs-gen/package-lock.json +5867 -0
- s2dm-0.16.2/docs-gen/package.json +39 -0
- s2dm-0.16.2/docs-gen/static/.gitkeep +0 -0
- s2dm-0.16.2/docs-gen/static/cover.jpg +0 -0
- s2dm-0.16.2/docs-gen/static/examples/seat-capabilities/full_schema.graphql +185 -0
- s2dm-0.16.2/docs-gen/static/examples/seat-domain-model/full_schema.graphql +451 -0
- s2dm-0.16.2/docs-gen/static/examples/seat-to-vspec/full_sdl.graphql +451 -0
- s2dm-0.16.2/docs-gen/static/examples/trailer/full_schema.graphql +446 -0
- s2dm-0.16.2/docs-gen/static/favicon.ico +0 -0
- s2dm-0.16.2/docs-gen/static/favicon.png +0 -0
- s2dm-0.16.2/docs-gen/static/icon.svg +5 -0
- s2dm-0.16.2/docs-gen/static/images/COVESA-Logo-Small.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/S2DM.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/actively_developed.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/automated.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/current-vs-desired.jpg +0 -0
- s2dm-0.16.2/docs-gen/static/images/general-flow.jpg +0 -0
- s2dm-0.16.2/docs-gen/static/images/optional_extensions.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/s2dm_overview.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/s2dm_pre_def_elements.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/s2dm_pre_def_elements.svg +4 -0
- s2dm-0.16.2/docs-gen/static/images/s2dm_role.png +0 -0
- s2dm-0.16.2/docs-gen/static/images/vss-limits-criteria.jpg +0 -0
- s2dm-0.16.2/docs-gen/test/.codesandbox/tasks.json +22 -0
- s2dm-0.16.2/docs-gen/test/.devcontainer/Dockerfile +19 -0
- s2dm-0.16.2/docs-gen/test/.devcontainer/devcontainer.json +5 -0
- s2dm-0.16.2/docs-gen/test/.gitignore +6 -0
- s2dm-0.16.2/docs-gen/test/.gitpod.yml +13 -0
- s2dm-0.16.2/docs-gen/test/.npmignore +2 -0
- s2dm-0.16.2/docs-gen/test/.npmrc +4 -0
- s2dm-0.16.2/docs-gen/test/.prettierignore +12 -0
- s2dm-0.16.2/docs-gen/test/.prettierrc.yaml +19 -0
- s2dm-0.16.2/docs-gen/test/LICENSE +21 -0
- s2dm-0.16.2/docs-gen/test/assets/favicon.png +0 -0
- s2dm-0.16.2/docs-gen/test/assets/favicon.svg +1 -0
- s2dm-0.16.2/docs-gen/test/assets/images/.gitkeep +0 -0
- s2dm-0.16.2/docs-gen/test/assets/js/custom.js +1 -0
- s2dm-0.16.2/docs-gen/test/assets/scss/common/_custom.scss +1 -0
- s2dm-0.16.2/docs-gen/test/assets/scss/common/_variables-custom.scss +1 -0
- s2dm-0.16.2/docs-gen/test/assets/svgs/.gitkeep +0 -0
- s2dm-0.16.2/docs-gen/test/config/_default/hugo.toml +87 -0
- s2dm-0.16.2/docs-gen/test/config/_default/languages.toml +32 -0
- s2dm-0.16.2/docs-gen/test/config/_default/markup.toml +33 -0
- s2dm-0.16.2/docs-gen/test/config/_default/menus/menus.en.toml +16 -0
- s2dm-0.16.2/docs-gen/test/config/_default/menus/menus.nl.toml +39 -0
- s2dm-0.16.2/docs-gen/test/config/_default/module.toml +97 -0
- s2dm-0.16.2/docs-gen/test/config/_default/params.toml +140 -0
- s2dm-0.16.2/docs-gen/test/config/babel.config.js +17 -0
- s2dm-0.16.2/docs-gen/test/config/next/hugo.toml +2 -0
- s2dm-0.16.2/docs-gen/test/config/postcss.config.js +64 -0
- s2dm-0.16.2/docs-gen/test/config/production/hugo.toml +2 -0
- s2dm-0.16.2/docs-gen/test/content/_index.md +13 -0
- s2dm-0.16.2/docs-gen/test/content/blog/_index.md +19 -0
- s2dm-0.16.2/docs-gen/test/content/blog/example/index.md +25 -0
- s2dm-0.16.2/docs-gen/test/content/docs/_index.md +15 -0
- s2dm-0.16.2/docs-gen/test/content/docs/guides/_index.md +15 -0
- s2dm-0.16.2/docs-gen/test/content/docs/guides/example.md +21 -0
- s2dm-0.16.2/docs-gen/test/content/docs/reference/_index.md +17 -0
- s2dm-0.16.2/docs-gen/test/content/docs/reference/example.md +21 -0
- s2dm-0.16.2/docs-gen/test/content/docs/resources.md +17 -0
- s2dm-0.16.2/docs-gen/test/content/privacy.md +14 -0
- s2dm-0.16.2/docs-gen/test/layouts/_partials/footer/script-footer-custom.html +13 -0
- s2dm-0.16.2/docs-gen/test/layouts/_partials/head/custom-head.html +1 -0
- s2dm-0.16.2/docs-gen/test/layouts/_partials/head/script-header.html +1 -0
- s2dm-0.16.2/docs-gen/test/layouts/home.html +59 -0
- s2dm-0.16.2/docs-gen/test/netlify.toml +35 -0
- s2dm-0.16.2/docs-gen/test/package.json +39 -0
- s2dm-0.16.2/docs-gen/test/static/.gitkeep +0 -0
- s2dm-0.16.2/docs-gen/test/static/apple-touch-icon.png +0 -0
- s2dm-0.16.2/docs-gen/test/static/cover.jpg +0 -0
- s2dm-0.16.2/docs-gen/test/static/favicon.ico +0 -0
- s2dm-0.16.2/docs-gen/test/static/icon.svg +1 -0
- s2dm-0.16.2/docs-gen/theme.toml +14 -0
- s2dm-0.16.2/examples/graphql-to-skos/.gitignore +1 -0
- s2dm-0.16.2/examples/graphql-to-skos/README.md +164 -0
- s2dm-0.16.2/examples/graphql-to-skos/sample.graphql +30 -0
- s2dm-0.16.2/examples/graphql-to-skos/shapes.shacl +118 -0
- s2dm-0.16.2/examples/graphql-to-skos/skos-mapping-diagram.md +84 -0
- s2dm-0.16.2/examples/multiple-classification-schemes/skos.ttl +84 -0
- s2dm-0.16.2/examples/multiple-domains/OtherDomains.graphql +29 -0
- s2dm-0.16.2/examples/seat-capabilities/Mutation.graphql +16 -0
- s2dm-0.16.2/examples/seat-capabilities/Query.graphql +19 -0
- s2dm-0.16.2/examples/seat-to-vspec/08.07.2025/result.vspec +317 -0
- s2dm-0.16.2/examples/seat-to-vspec/README.md +18 -0
- s2dm-0.16.2/examples/seat-to-vspec/Screenshot 2025-05-06 at 22.11.56.png +0 -0
- s2dm-0.16.2/examples/seat-to-vspec/expected.vspec +341 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Cabin.graphql +16 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/CustomExtensions/ExtendedSeat.graphql +23 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Queries.graphql +4 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Seat/Seat.graphql +147 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Seat/SeatAirbag.graphql +7 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Seat/SeatBackrest.graphql +65 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Seat/SeatHeadrest.graphql +32 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Seat/SeatSeating.graphql +24 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/Vehicle.graphql +5 -0
- s2dm-0.16.2/examples/seat-to-vspec/modular_seat_spec/VehicleIdentification.graphql +8 -0
- s2dm-0.16.2/examples/seat-to-vspec/result.vspec +317 -0
- s2dm-0.16.2/examples/spec-history-registry/.gitignore +9 -0
- s2dm-0.16.2/examples/spec-history-registry/README.md +98 -0
- s2dm-0.16.2/examples/spec-history-registry/sample.graphql +99 -0
- s2dm-0.16.2/examples/spec-history-registry/sample_updated.graphql +100 -0
- s2dm-0.16.2/examples/trailer/README.md +13 -0
- s2dm-0.16.2/examples/trailer/full_schema.graphl +446 -0
- s2dm-0.16.2/examples/trailer/modular_trailer_example/Vehicle.graphql +16 -0
- s2dm-0.16.2/examples/trailer/modular_trailer_example/VehicleTrailer.graphql +32 -0
- s2dm-0.16.2/examples/trailer/modular_trailer_example/VehicleTrailerAxle.graphql +58 -0
- s2dm-0.16.2/examples/trailer/modular_trailer_example/VehicleTrailerWheel.graphql +50 -0
- s2dm-0.16.2/examples/trailer/modular_trailer_example/instances.graphql +66 -0
- s2dm-0.16.2/examples/trailer/trailer_voyager_graph.png +0 -0
- s2dm-0.16.2/examples/units/external_qudt/AccelerationUnit.graphql +50 -0
- s2dm-0.16.2/examples/units/external_qudt/AngleUnit.graphql +38 -0
- s2dm-0.16.2/examples/units/external_qudt/AngularVelocityUnit.graphql +23 -0
- s2dm-0.16.2/examples/units/external_qudt/DimensionlessRatioUnit.graphql +44 -0
- s2dm-0.16.2/examples/units/external_qudt/DisplacementCurrentUnit.graphql +20 -0
- s2dm-0.16.2/examples/units/external_qudt/ElectricChargeUnit.graphql +104 -0
- s2dm-0.16.2/examples/units/external_qudt/ElectricPotentialUnit.graphql +47 -0
- s2dm-0.16.2/examples/units/external_qudt/ElectricPowerUnit.graphql +38 -0
- s2dm-0.16.2/examples/units/external_qudt/ForcePerAreaUnit.graphql +203 -0
- s2dm-0.16.2/examples/units/external_qudt/ForceUnit.graphql +71 -0
- s2dm-0.16.2/examples/units/external_qudt/HeartRateUnit.graphql +5 -0
- s2dm-0.16.2/examples/units/external_qudt/LengthUnit.graphql +116 -0
- s2dm-0.16.2/examples/units/external_qudt/LuminousFluxPerAreaUnit.graphql +11 -0
- s2dm-0.16.2/examples/units/external_qudt/MassFlowRateUnit.graphql +131 -0
- s2dm-0.16.2/examples/units/external_qudt/MassPerLengthUnit.graphql +35 -0
- s2dm-0.16.2/examples/units/external_qudt/MassUnit.graphql +167 -0
- s2dm-0.16.2/examples/units/external_qudt/PowerUnit.graphql +200 -0
- s2dm-0.16.2/examples/units/external_qudt/ResistanceUnit.graphql +32 -0
- s2dm-0.16.2/examples/units/external_qudt/RotationalVelocityUnit.graphql +20 -0
- s2dm-0.16.2/examples/units/external_qudt/SoundPowerLevelUnit.graphql +20 -0
- s2dm-0.16.2/examples/units/external_qudt/TemperatureUnit.graphql +29 -0
- s2dm-0.16.2/examples/units/external_qudt/TorqueUnit.graphql +56 -0
- s2dm-0.16.2/examples/units/external_qudt/UnknownUnit.graphql +1382 -0
- s2dm-0.16.2/examples/units/external_qudt/VelocityUnit.graphql +110 -0
- s2dm-0.16.2/examples/units/external_qudt/VolumeFlowRateUnit.graphql +293 -0
- s2dm-0.16.2/examples/units/external_qudt/VolumeUnit.graphql +146 -0
- s2dm-0.16.2/noxfile.py +21 -0
- s2dm-0.16.2/package-lock.json +2995 -0
- s2dm-0.16.2/package.json +7 -0
- s2dm-0.16.2/playground/biome.json +34 -0
- s2dm-0.16.2/playground/components.json +22 -0
- s2dm-0.16.2/playground/index.html +21 -0
- s2dm-0.16.2/playground/package-lock.json +6285 -0
- s2dm-0.16.2/playground/package.json +56 -0
- s2dm-0.16.2/playground/src/App.tsx +57 -0
- s2dm-0.16.2/playground/src/api/capabilities.ts +6 -0
- s2dm-0.16.2/playground/src/api/client.ts +68 -0
- s2dm-0.16.2/playground/src/api/parseExporters.ts +252 -0
- s2dm-0.16.2/playground/src/api/s2dm.ts +59 -0
- s2dm-0.16.2/playground/src/api/schemaInputs.ts +23 -0
- s2dm-0.16.2/playground/src/api/types.ts +80 -0
- s2dm-0.16.2/playground/src/components/CliCommandDisplay.tsx +105 -0
- s2dm-0.16.2/playground/src/components/ErrorDisplay.tsx +18 -0
- s2dm-0.16.2/playground/src/components/ExplorePane.tsx +364 -0
- s2dm-0.16.2/playground/src/components/ExportConfig.tsx +256 -0
- s2dm-0.16.2/playground/src/components/FileList.tsx +444 -0
- s2dm-0.16.2/playground/src/components/InputPane.tsx +138 -0
- s2dm-0.16.2/playground/src/components/Pane.tsx +130 -0
- s2dm-0.16.2/playground/src/components/QueryEditorWrapper.tsx +76 -0
- s2dm-0.16.2/playground/src/components/ResultPane.tsx +207 -0
- s2dm-0.16.2/playground/src/components/SchemaVisualizer.tsx +65 -0
- s2dm-0.16.2/playground/src/components/TextEditor.tsx +126 -0
- s2dm-0.16.2/playground/src/components/ThemeToggle.tsx +80 -0
- s2dm-0.16.2/playground/src/components/graphiql-theme.css +154 -0
- s2dm-0.16.2/playground/src/components/ui/alert-dialog.tsx +159 -0
- s2dm-0.16.2/playground/src/components/ui/button.tsx +74 -0
- s2dm-0.16.2/playground/src/components/ui/checkbox.tsx +30 -0
- s2dm-0.16.2/playground/src/components/ui/collapsible-section.tsx +49 -0
- s2dm-0.16.2/playground/src/components/ui/dialog.tsx +139 -0
- s2dm-0.16.2/playground/src/components/ui/empty-state.tsx +43 -0
- s2dm-0.16.2/playground/src/components/ui/form-label.tsx +22 -0
- s2dm-0.16.2/playground/src/components/ui/heading.tsx +39 -0
- s2dm-0.16.2/playground/src/components/ui/input.tsx +21 -0
- s2dm-0.16.2/playground/src/components/ui/label.tsx +24 -0
- s2dm-0.16.2/playground/src/components/ui/select.tsx +145 -0
- s2dm-0.16.2/playground/src/components/ui/separator.tsx +10 -0
- s2dm-0.16.2/playground/src/components/ui/simple-dropdown.tsx +93 -0
- s2dm-0.16.2/playground/src/components/ui/tabs.tsx +53 -0
- s2dm-0.16.2/playground/src/components/voyager-dark.css +235 -0
- s2dm-0.16.2/playground/src/config/api.ts +3 -0
- s2dm-0.16.2/playground/src/constants.ts +3 -0
- s2dm-0.16.2/playground/src/hooks/useMonacoTheme.ts +9 -0
- s2dm-0.16.2/playground/src/hooks/useTheme.ts +24 -0
- s2dm-0.16.2/playground/src/index.css +126 -0
- s2dm-0.16.2/playground/src/language-support/turtleMonaco.ts +125 -0
- s2dm-0.16.2/playground/src/main.tsx +22 -0
- s2dm-0.16.2/playground/src/store/app/appSaga.ts +41 -0
- s2dm-0.16.2/playground/src/store/app/appSlice.ts +14 -0
- s2dm-0.16.2/playground/src/store/capabilities/capabilitiesSaga.ts +65 -0
- s2dm-0.16.2/playground/src/store/capabilities/capabilitiesSlice.ts +101 -0
- s2dm-0.16.2/playground/src/store/export/exportSaga.ts +147 -0
- s2dm-0.16.2/playground/src/store/export/exportSlice.ts +91 -0
- s2dm-0.16.2/playground/src/store/hooks.ts +6 -0
- s2dm-0.16.2/playground/src/store/schema/schemaSlice.ts +47 -0
- s2dm-0.16.2/playground/src/store/selection/pruneSchemaSaga.ts +68 -0
- s2dm-0.16.2/playground/src/store/selection/selectionSlice.ts +51 -0
- s2dm-0.16.2/playground/src/store/store.ts +50 -0
- s2dm-0.16.2/playground/src/store/types.ts +24 -0
- s2dm-0.16.2/playground/src/store/ui/uiSlice.ts +46 -0
- s2dm-0.16.2/playground/src/store/validation/validationSaga.ts +46 -0
- s2dm-0.16.2/playground/src/store/validation/validationSlice.ts +50 -0
- s2dm-0.16.2/playground/src/types/importedFile.ts +6 -0
- s2dm-0.16.2/playground/src/utils/buildCliCommand.ts +111 -0
- s2dm-0.16.2/playground/src/utils/cn.ts +7 -0
- s2dm-0.16.2/playground/src/utils/download.ts +14 -0
- s2dm-0.16.2/playground/src/utils/monacoLanguage.ts +24 -0
- s2dm-0.16.2/playground/src/utils/validation.ts +16 -0
- s2dm-0.16.2/playground/tsconfig.app.json +32 -0
- s2dm-0.16.2/playground/tsconfig.json +13 -0
- s2dm-0.16.2/playground/tsconfig.node.json +26 -0
- s2dm-0.16.2/playground/vite.config.ts +19 -0
- s2dm-0.16.2/pyproject.toml +91 -0
- s2dm-0.16.2/src/s2dm/__init__.py +7 -0
- s2dm-0.16.2/src/s2dm/api/__init__.py +5 -0
- s2dm-0.16.2/src/s2dm/api/config.py +10 -0
- s2dm-0.16.2/src/s2dm/api/errors.py +47 -0
- s2dm-0.16.2/src/s2dm/api/main.py +124 -0
- s2dm-0.16.2/src/s2dm/api/models/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/api/models/avro.py +22 -0
- s2dm-0.16.2/src/s2dm/api/models/base.py +103 -0
- s2dm-0.16.2/src/s2dm/api/models/filter.py +12 -0
- s2dm-0.16.2/src/s2dm/api/models/jsonschema.py +13 -0
- s2dm-0.16.2/src/s2dm/api/models/protobuf.py +14 -0
- s2dm-0.16.2/src/s2dm/api/models/query_validate.py +12 -0
- s2dm-0.16.2/src/s2dm/api/models/shacl.py +33 -0
- s2dm-0.16.2/src/s2dm/api/models/validate.py +11 -0
- s2dm-0.16.2/src/s2dm/api/routes/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/api/routes/avro.py +71 -0
- s2dm-0.16.2/src/s2dm/api/routes/filter.py +31 -0
- s2dm-0.16.2/src/s2dm/api/routes/jsonschema.py +41 -0
- s2dm-0.16.2/src/s2dm/api/routes/protobuf.py +53 -0
- s2dm-0.16.2/src/s2dm/api/routes/query_validate.py +40 -0
- s2dm-0.16.2/src/s2dm/api/routes/shacl.py +51 -0
- s2dm-0.16.2/src/s2dm/api/routes/validate.py +36 -0
- s2dm-0.16.2/src/s2dm/api/routes/vspec.py +38 -0
- s2dm-0.16.2/src/s2dm/api/services/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/api/services/response_service.py +38 -0
- s2dm-0.16.2/src/s2dm/api/services/schema_service.py +88 -0
- s2dm-0.16.2/src/s2dm/cli.py +1725 -0
- s2dm-0.16.2/src/s2dm/concept/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/concept/models.py +47 -0
- s2dm-0.16.2/src/s2dm/concept/services.py +74 -0
- s2dm-0.16.2/src/s2dm/exporters/README.md +700 -0
- s2dm-0.16.2/src/s2dm/exporters/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/__init__.py +6 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/avro.py +55 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/common.py +39 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/protocol.py +114 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/protocol_transformer.py +161 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/schema.py +55 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/schema_transformer.py +309 -0
- s2dm-0.16.2/src/s2dm/exporters/avro/transformer.py +309 -0
- s2dm-0.16.2/src/s2dm/exporters/concept_uri.py +46 -0
- s2dm-0.16.2/src/s2dm/exporters/id.py +320 -0
- s2dm-0.16.2/src/s2dm/exporters/jsonschema/__init__.py +5 -0
- s2dm-0.16.2/src/s2dm/exporters/jsonschema/jsonschema.py +57 -0
- s2dm-0.16.2/src/s2dm/exporters/jsonschema/transformer.py +531 -0
- s2dm-0.16.2/src/s2dm/exporters/protobuf/__init__.py +3 -0
- s2dm-0.16.2/src/s2dm/exporters/protobuf/models.py +76 -0
- s2dm-0.16.2/src/s2dm/exporters/protobuf/protobuf.py +61 -0
- s2dm-0.16.2/src/s2dm/exporters/protobuf/templates/proto_standard.j2 +87 -0
- s2dm-0.16.2/src/s2dm/exporters/protobuf/transformer.py +519 -0
- s2dm-0.16.2/src/s2dm/exporters/shacl.py +312 -0
- s2dm-0.16.2/src/s2dm/exporters/skos.py +270 -0
- s2dm-0.16.2/src/s2dm/exporters/spec_history.py +249 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/annotated_schema.py +25 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/directive.py +229 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/extraction.py +106 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/field.py +158 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/graphql_type.py +32 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/instance_tag.py +356 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/naming.py +238 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/naming_config.py +161 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/schema.py +59 -0
- s2dm-0.16.2/src/s2dm/exporters/utils/schema_loader.py +871 -0
- s2dm-0.16.2/src/s2dm/exporters/vspec.py +410 -0
- s2dm-0.16.2/src/s2dm/logger.py +184 -0
- s2dm-0.16.2/src/s2dm/registry/README.md +65 -0
- s2dm-0.16.2/src/s2dm/registry/__init__.py +8 -0
- s2dm-0.16.2/src/s2dm/registry/concept_uris.py +134 -0
- s2dm-0.16.2/src/s2dm/registry/search.py +201 -0
- s2dm-0.16.2/src/s2dm/registry/spec_history.py +177 -0
- s2dm-0.16.2/src/s2dm/registry/variant_ids.py +92 -0
- s2dm-0.16.2/src/s2dm/tools/README.md +160 -0
- s2dm-0.16.2/src/s2dm/tools/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/tools/constraint_checker.py +54 -0
- s2dm-0.16.2/src/s2dm/tools/diff_parser.py +68 -0
- s2dm-0.16.2/src/s2dm/tools/graphql_inspector.py +351 -0
- s2dm-0.16.2/src/s2dm/tools/graphql_inspector_diff.js +151 -0
- s2dm-0.16.2/src/s2dm/tools/naming_checker.py +142 -0
- s2dm-0.16.2/src/s2dm/tools/string.py +6 -0
- s2dm-0.16.2/src/s2dm/tools/validators.py +31 -0
- s2dm-0.16.2/src/s2dm/units/README.md +204 -0
- s2dm-0.16.2/src/s2dm/units/__init__.py +0 -0
- s2dm-0.16.2/src/s2dm/units/sync.py +436 -0
- s2dm-0.16.2/src/s2dm/utils/__init__.py +1 -0
- s2dm-0.16.2/src/s2dm/utils/file.py +53 -0
- s2dm-0.16.2/test_env/bin/Activate.ps1 +247 -0
- s2dm-0.16.2/test_env/bin/activate +76 -0
- s2dm-0.16.2/test_env/bin/activate.csh +27 -0
- s2dm-0.16.2/test_env/bin/activate.fish +69 -0
- s2dm-0.16.2/test_env/bin/avro +8 -0
- s2dm-0.16.2/test_env/bin/csv2rdf +8 -0
- s2dm-0.16.2/test_env/bin/markdown-it +8 -0
- s2dm-0.16.2/test_env/bin/normalizer +8 -0
- s2dm-0.16.2/test_env/bin/pip +8 -0
- s2dm-0.16.2/test_env/bin/pip3 +8 -0
- s2dm-0.16.2/test_env/bin/pip3.12 +8 -0
- s2dm-0.16.2/test_env/bin/pygmentize +8 -0
- s2dm-0.16.2/test_env/bin/pyshacl +8 -0
- s2dm-0.16.2/test_env/bin/pyshacl_rules +8 -0
- s2dm-0.16.2/test_env/bin/pyshacl_server +8 -0
- s2dm-0.16.2/test_env/bin/pyshacl_validate +8 -0
- s2dm-0.16.2/test_env/bin/python +1 -0
- s2dm-0.16.2/test_env/bin/python3 +1 -0
- s2dm-0.16.2/test_env/bin/python3.12 +1 -0
- s2dm-0.16.2/test_env/bin/rdf2dot +8 -0
- s2dm-0.16.2/test_env/bin/rdfgraphisomorphism +8 -0
- s2dm-0.16.2/test_env/bin/rdfpipe +8 -0
- s2dm-0.16.2/test_env/bin/rdfs2dot +8 -0
- s2dm-0.16.2/test_env/bin/rich-click +8 -0
- s2dm-0.16.2/test_env/bin/s2dm +8 -0
- s2dm-0.16.2/test_env/bin/sq +8 -0
- s2dm-0.16.2/test_env/pyvenv.cfg +5 -0
- s2dm-0.16.2/tests/__init__.py +0 -0
- s2dm-0.16.2/tests/conftest.py +340 -0
- s2dm-0.16.2/tests/data/base.graphql +27 -0
- s2dm-0.16.2/tests/data/breaking.graphql +30 -0
- s2dm-0.16.2/tests/data/dangerous.graphql +31 -0
- s2dm-0.16.2/tests/data/invalid_query.graphql +9 -0
- s2dm-0.16.2/tests/data/no-change.graphql +27 -0
- s2dm-0.16.2/tests/data/non-breaking.graphql +33 -0
- s2dm-0.16.2/tests/data/schema1-1.graphql +48 -0
- s2dm-0.16.2/tests/data/schema1-2.graphql +43 -0
- s2dm-0.16.2/tests/data/schema1.graphql +87 -0
- s2dm-0.16.2/tests/data/schema1_query.graphql +15 -0
- s2dm-0.16.2/tests/data/schema2-1.graphql +50 -0
- s2dm-0.16.2/tests/data/schema2-2.graphql +43 -0
- s2dm-0.16.2/tests/data/schema2.graphql +88 -0
- s2dm-0.16.2/tests/data/schema3.graphql +89 -0
- s2dm-0.16.2/tests/data/spec/common.graphql +81 -0
- s2dm-0.16.2/tests/data/units/AccelerationUnit.graphql +50 -0
- s2dm-0.16.2/tests/data/units/AngleUnit.graphql +38 -0
- s2dm-0.16.2/tests/data/units/AngularVelocityUnit.graphql +23 -0
- s2dm-0.16.2/tests/data/units/DimensionlessRatioUnit.graphql +44 -0
- s2dm-0.16.2/tests/data/units/DisplacementCurrentUnit.graphql +20 -0
- s2dm-0.16.2/tests/data/units/ElectricChargeUnit.graphql +104 -0
- s2dm-0.16.2/tests/data/units/ElectricPotentialUnit.graphql +47 -0
- s2dm-0.16.2/tests/data/units/ElectricPowerUnit.graphql +38 -0
- s2dm-0.16.2/tests/data/units/ForcePerAreaUnit.graphql +203 -0
- s2dm-0.16.2/tests/data/units/ForceUnit.graphql +71 -0
- s2dm-0.16.2/tests/data/units/HeartRateUnit.graphql +5 -0
- s2dm-0.16.2/tests/data/units/LengthUnit.graphql +116 -0
- s2dm-0.16.2/tests/data/units/LuminousFluxPerAreaUnit.graphql +11 -0
- s2dm-0.16.2/tests/data/units/MassFlowRateUnit.graphql +131 -0
- s2dm-0.16.2/tests/data/units/MassPerLengthUnit.graphql +35 -0
- s2dm-0.16.2/tests/data/units/MassUnit.graphql +167 -0
- s2dm-0.16.2/tests/data/units/PowerUnit.graphql +200 -0
- s2dm-0.16.2/tests/data/units/ResistanceUnit.graphql +32 -0
- s2dm-0.16.2/tests/data/units/RotationalVelocityUnit.graphql +20 -0
- s2dm-0.16.2/tests/data/units/SoundPowerLevelUnit.graphql +20 -0
- s2dm-0.16.2/tests/data/units/TemperatureUnit.graphql +29 -0
- s2dm-0.16.2/tests/data/units/TorqueUnit.graphql +56 -0
- s2dm-0.16.2/tests/data/units/UnknownUnit.graphql +1382 -0
- s2dm-0.16.2/tests/data/units/VelocityUnit.graphql +110 -0
- s2dm-0.16.2/tests/data/units/VolumeFlowRateUnit.graphql +293 -0
- s2dm-0.16.2/tests/data/units/VolumeUnit.graphql +146 -0
- s2dm-0.16.2/tests/data/valid_query.graphql +11 -0
- s2dm-0.16.2/tests/test_api_core.py +196 -0
- s2dm-0.16.2/tests/test_api_exports.py +424 -0
- s2dm-0.16.2/tests/test_api_schema_routes.py +236 -0
- s2dm-0.16.2/tests/test_api_schema_service.py +200 -0
- s2dm-0.16.2/tests/test_avro.py +815 -0
- s2dm-0.16.2/tests/test_avro_idl.py +624 -0
- s2dm-0.16.2/tests/test_check_constraint.py +131 -0
- s2dm-0.16.2/tests/test_cli_validation.py +127 -0
- s2dm-0.16.2/tests/test_e2e_avro.py +328 -0
- s2dm-0.16.2/tests/test_e2e_avro_idl.py +204 -0
- s2dm-0.16.2/tests/test_e2e_cli.py +1181 -0
- s2dm-0.16.2/tests/test_e2e_jsonschema.py +292 -0
- s2dm-0.16.2/tests/test_e2e_protobuf.py +396 -0
- s2dm-0.16.2/tests/test_enum_validation.py +250 -0
- s2dm-0.16.2/tests/test_expanded_instances/__init__.py +1 -0
- s2dm-0.16.2/tests/test_expanded_instances/test_nested_schema.graphql +35 -0
- s2dm-0.16.2/tests/test_expanded_instances/test_schema.graphql +67 -0
- s2dm-0.16.2/tests/test_get_field_case.py +143 -0
- s2dm-0.16.2/tests/test_get_field_case_logic.py +53 -0
- s2dm-0.16.2/tests/test_gql_inspector.py +127 -0
- s2dm-0.16.2/tests/test_id_exporter_variants.py +867 -0
- s2dm-0.16.2/tests/test_jsonschema.py +884 -0
- s2dm-0.16.2/tests/test_naming_convention.py +163 -0
- s2dm-0.16.2/tests/test_naming_utils.py +462 -0
- s2dm-0.16.2/tests/test_nested_types/spec.graphql +37 -0
- s2dm-0.16.2/tests/test_protobuf.py +1107 -0
- s2dm-0.16.2/tests/test_s2dm.py +5 -0
- s2dm-0.16.2/tests/test_schema_loader.py +261 -0
- s2dm-0.16.2/tests/test_schema_processing.py +152 -0
- s2dm-0.16.2/tests/test_skos_exporter.py +327 -0
- s2dm-0.16.2/tests/test_skos_search.py +260 -0
- s2dm-0.16.2/tests/test_type_modifiers/output_shacl.ttl +77 -0
- s2dm-0.16.2/tests/test_type_modifiers/test_spec.graphql +102 -0
- s2dm-0.16.2/tests/test_units_sync.py +190 -0
- s2dm-0.16.2/tests/test_utils.py +459 -0
- s2dm-0.16.2/tests/test_vss_Seat/15_05_2025/result.csv +193 -0
- s2dm-0.16.2/tests/test_vss_Seat/15_05_2025/result.json +8471 -0
- s2dm-0.16.2/tests/test_vss_Seat/15_05_2025/result.yaml +1113 -0
- s2dm-0.16.2/tests/test_vss_Seat/15_05_2025/schema.graphql +439 -0
- s2dm-0.16.2/tests/test_vss_Seat/15_05_2025/schema_with_other_domains.graphql +467 -0
- s2dm-0.16.2/uv.lock +2911 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[tool.bumpversion]
|
|
2
|
+
current_version = "0.16.2"
|
|
3
|
+
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
4
|
+
serialize = ["{major}.{minor}.{patch}"]
|
|
5
|
+
search = "{current_version}"
|
|
6
|
+
replace = "{new_version}"
|
|
7
|
+
regex = false
|
|
8
|
+
ignore_missing_version = false
|
|
9
|
+
ignore_missing_files = false
|
|
10
|
+
tag = true
|
|
11
|
+
sign_tags = false
|
|
12
|
+
tag_name = "v{new_version}"
|
|
13
|
+
tag_message = "Bump version: {current_version} → {new_version}"
|
|
14
|
+
allow_dirty = false
|
|
15
|
+
commit = false
|
|
16
|
+
message = "chore: bump version {current_version} → {new_version}"
|
|
17
|
+
moveable_tags = []
|
|
18
|
+
commit_args = ""
|
|
19
|
+
|
|
20
|
+
[[tool.bumpversion.files]]
|
|
21
|
+
filename = "src/s2dm/__init__.py"
|
|
22
|
+
|
|
23
|
+
[[tool.bumpversion.files]]
|
|
24
|
+
filename = "tests/test_s2dm.py"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Enable version updates for GitHub Actions
|
|
4
|
+
- package-ecosystem: "github-actions"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
labels:
|
|
9
|
+
- "dependencies"
|
|
10
|
+
- "github-actions"
|
|
11
|
+
|
|
12
|
+
# Enable version updates for Python packages
|
|
13
|
+
- package-ecosystem: "pip"
|
|
14
|
+
directory: "/"
|
|
15
|
+
schedule:
|
|
16
|
+
interval: "weekly"
|
|
17
|
+
labels:
|
|
18
|
+
- "dependencies"
|
|
19
|
+
- "python"
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- develop
|
|
8
|
+
push:
|
|
9
|
+
branches:
|
|
10
|
+
- main
|
|
11
|
+
- develop
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
check:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: checkout
|
|
18
|
+
uses: actions/checkout@v6
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
|
|
22
|
+
- name: setup python
|
|
23
|
+
uses: actions/setup-python@v6
|
|
24
|
+
with:
|
|
25
|
+
python-version: "3.13"
|
|
26
|
+
|
|
27
|
+
- name: setup node
|
|
28
|
+
uses: actions/setup-node@v6
|
|
29
|
+
with:
|
|
30
|
+
node-version: "20"
|
|
31
|
+
|
|
32
|
+
- name: install node dependencies
|
|
33
|
+
run: npm install
|
|
34
|
+
|
|
35
|
+
- name: uv
|
|
36
|
+
uses: astral-sh/setup-uv@v7
|
|
37
|
+
|
|
38
|
+
- name: sync
|
|
39
|
+
run: |
|
|
40
|
+
uv sync --frozen
|
|
41
|
+
|
|
42
|
+
- name: pre-commit
|
|
43
|
+
run: |
|
|
44
|
+
uv run pre-commit run --all-files
|
|
45
|
+
|
|
46
|
+
- name: gitlint
|
|
47
|
+
run: |
|
|
48
|
+
# Determine base branch - use PR base if in PR, otherwise main
|
|
49
|
+
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
|
50
|
+
BASE_BRANCH="${{ github.base_ref }}"
|
|
51
|
+
else
|
|
52
|
+
BASE_BRANCH="main"
|
|
53
|
+
fi
|
|
54
|
+
echo "Using base branch: $BASE_BRANCH"
|
|
55
|
+
# Run gitlint on commits since base branch
|
|
56
|
+
uv run gitlint --commits $(git merge-base HEAD origin/$BASE_BRANCH)..HEAD
|
|
57
|
+
|
|
58
|
+
- name: mypy
|
|
59
|
+
run: |
|
|
60
|
+
uv run mypy src/ tests/
|
|
61
|
+
|
|
62
|
+
- name: test
|
|
63
|
+
run: |
|
|
64
|
+
uv run nox
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: Deploy S2DM site to Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Runs on pushes targeting the default branch
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
# Allows you to run this workflow manually from the Actions tab
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
pages: write
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
19
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
20
|
+
concurrency:
|
|
21
|
+
group: "pages"
|
|
22
|
+
cancel-in-progress: false
|
|
23
|
+
|
|
24
|
+
# Default to bash
|
|
25
|
+
defaults:
|
|
26
|
+
run:
|
|
27
|
+
shell: bash
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
# Build job
|
|
31
|
+
build:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
env:
|
|
34
|
+
HUGO_VERSION: 0.147.9
|
|
35
|
+
steps:
|
|
36
|
+
- name: Install Hugo CLI
|
|
37
|
+
run: |
|
|
38
|
+
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
|
39
|
+
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
|
40
|
+
- name: Checkout
|
|
41
|
+
uses: actions/checkout@v6
|
|
42
|
+
with:
|
|
43
|
+
submodules: recursive
|
|
44
|
+
fetch-depth: 0
|
|
45
|
+
- name: Setup Node.js
|
|
46
|
+
uses: actions/setup-node@v6
|
|
47
|
+
with:
|
|
48
|
+
node-version: '20'
|
|
49
|
+
cache: 'npm'
|
|
50
|
+
cache-dependency-path: 'docs-gen/package-lock.json'
|
|
51
|
+
- name: Setup Pages
|
|
52
|
+
id: pages
|
|
53
|
+
uses: actions/configure-pages@v5
|
|
54
|
+
- name: Install dependencies
|
|
55
|
+
working-directory: ./docs-gen
|
|
56
|
+
run: npm ci
|
|
57
|
+
- name: Build production website
|
|
58
|
+
working-directory: ./docs-gen
|
|
59
|
+
env:
|
|
60
|
+
# For maximum backward compatibility with Hugo modules
|
|
61
|
+
HUGO_ENVIRONMENT: production
|
|
62
|
+
HUGO_ENV: production
|
|
63
|
+
TZ: America/Los_Angeles
|
|
64
|
+
run: |
|
|
65
|
+
hugo \
|
|
66
|
+
--environment production \
|
|
67
|
+
--minify \
|
|
68
|
+
--cleanDestinationDir \
|
|
69
|
+
--baseURL "${{ steps.pages.outputs.base_url }}/"
|
|
70
|
+
- name: Upload artifact
|
|
71
|
+
uses: actions/upload-pages-artifact@v4
|
|
72
|
+
with:
|
|
73
|
+
path: ./docs-gen/public
|
|
74
|
+
|
|
75
|
+
# Deployment job
|
|
76
|
+
deploy:
|
|
77
|
+
environment:
|
|
78
|
+
name: github-pages
|
|
79
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
80
|
+
runs-on: ubuntu-latest
|
|
81
|
+
needs: build
|
|
82
|
+
steps:
|
|
83
|
+
- name: Deploy to GitHub Pages
|
|
84
|
+
id: deployment
|
|
85
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
name: release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
dry_run:
|
|
10
|
+
description: 'Dry run - build and create release but do not commit or publish to PyPI'
|
|
11
|
+
required: false
|
|
12
|
+
type: boolean
|
|
13
|
+
default: false
|
|
14
|
+
|
|
15
|
+
env:
|
|
16
|
+
ZERO_BASED_VERSIONING: true # set this to false when you want to release v1.0.0
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
release:
|
|
20
|
+
if: github.repository_owner == 'covesa'
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
steps:
|
|
23
|
+
- name: checkout
|
|
24
|
+
uses: actions/checkout@v6
|
|
25
|
+
with:
|
|
26
|
+
ssh-key: ${{ secrets.DEPLOY_KEY }}
|
|
27
|
+
fetch-depth: 0
|
|
28
|
+
|
|
29
|
+
- name: setup python
|
|
30
|
+
uses: actions/setup-python@v6
|
|
31
|
+
with:
|
|
32
|
+
python-version: "3.13"
|
|
33
|
+
|
|
34
|
+
- name: uv
|
|
35
|
+
uses: astral-sh/setup-uv@v7
|
|
36
|
+
|
|
37
|
+
- name: sync
|
|
38
|
+
run: uv sync --frozen
|
|
39
|
+
|
|
40
|
+
- name: install git-cliff
|
|
41
|
+
run: |
|
|
42
|
+
curl -L https://github.com/orhun/git-cliff/releases/download/v2.9.1/git-cliff-2.9.1-x86_64-unknown-linux-gnu.tar.gz | tar xz
|
|
43
|
+
sudo mv git-cliff-2.9.1/git-cliff /usr/local/bin/
|
|
44
|
+
|
|
45
|
+
- name: determine version bump
|
|
46
|
+
id: version
|
|
47
|
+
run: |
|
|
48
|
+
# Get commits since last tag
|
|
49
|
+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
|
50
|
+
if [ -z "$LAST_TAG" ]; then
|
|
51
|
+
COMMITS=$(git log --pretty=format:"%s" HEAD)
|
|
52
|
+
else
|
|
53
|
+
COMMITS=$(git log --pretty=format:"%s" ${LAST_TAG}..HEAD)
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
echo "Commits since last tag:"
|
|
57
|
+
echo "$COMMITS"
|
|
58
|
+
|
|
59
|
+
# Determine version bump based on conventional commits
|
|
60
|
+
MAJOR=false
|
|
61
|
+
MINOR=false
|
|
62
|
+
PATCH=false
|
|
63
|
+
|
|
64
|
+
while IFS= read -r commit; do
|
|
65
|
+
echo "Analyzing: $commit"
|
|
66
|
+
if echo "$commit" | grep -qE "^[a-zA-Z]+(\(.+\))?!:"; then
|
|
67
|
+
echo "Breaking change detected"
|
|
68
|
+
MAJOR=true
|
|
69
|
+
elif echo "$commit" | grep -qE "^feat(\(.+\))?:"; then
|
|
70
|
+
echo "Feature detected"
|
|
71
|
+
MINOR=true
|
|
72
|
+
elif echo "$commit" | grep -qE "^(fix|perf)(\(.+\))?:"; then
|
|
73
|
+
echo "Fix/perf detected"
|
|
74
|
+
PATCH=true
|
|
75
|
+
elif echo "$commit" | grep -qE "BREAKING CHANGE:"; then
|
|
76
|
+
echo "Breaking change in body detected"
|
|
77
|
+
MAJOR=true
|
|
78
|
+
fi
|
|
79
|
+
done <<< "$COMMITS"
|
|
80
|
+
|
|
81
|
+
# Determine bump type (major > minor > patch)
|
|
82
|
+
# Use minor bump for breaking changes when zero-based versioning is enabled
|
|
83
|
+
if [ "$MAJOR" = true ]; then
|
|
84
|
+
if [ "$ZERO_BASED_VERSIONING" = "true" ]; then
|
|
85
|
+
echo "bump=minor" >> $GITHUB_OUTPUT
|
|
86
|
+
echo "Version bump: MINOR (zero-based versioning - breaking change)"
|
|
87
|
+
else
|
|
88
|
+
echo "bump=major" >> $GITHUB_OUTPUT
|
|
89
|
+
echo "Version bump: MAJOR"
|
|
90
|
+
fi
|
|
91
|
+
elif [ "$MINOR" = true ]; then
|
|
92
|
+
echo "bump=minor" >> $GITHUB_OUTPUT
|
|
93
|
+
echo "Version bump: MINOR"
|
|
94
|
+
elif [ "$PATCH" = true ]; then
|
|
95
|
+
echo "bump=patch" >> $GITHUB_OUTPUT
|
|
96
|
+
echo "Version bump: PATCH"
|
|
97
|
+
else
|
|
98
|
+
echo "bump=none" >> $GITHUB_OUTPUT
|
|
99
|
+
echo "No version bump needed"
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
- name: bump version and update changelog
|
|
103
|
+
if: steps.version.outputs.bump != 'none'
|
|
104
|
+
run: |
|
|
105
|
+
git config --local user.email "action@github.com"
|
|
106
|
+
git config --local user.name "GitHub Action"
|
|
107
|
+
|
|
108
|
+
# Bump version without creating a tag or commit (since commit=false in .bumpversion.toml)
|
|
109
|
+
uv run bump-my-version bump ${{ steps.version.outputs.bump }} --no-tag --no-commit
|
|
110
|
+
|
|
111
|
+
# Get the new version from .bumpversion.toml
|
|
112
|
+
NEW_VERSION="v$(grep -E '^current_version = ' .bumpversion.toml | cut -d'"' -f2)"
|
|
113
|
+
echo "NEW_VERSION=${NEW_VERSION}" >> $GITHUB_ENV
|
|
114
|
+
|
|
115
|
+
# Generate changelog with git-cliff for the changes since last tag
|
|
116
|
+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
|
117
|
+
if [ -z "$LAST_TAG" ]; then
|
|
118
|
+
CHANGELOG=$(git-cliff --latest --strip=header)
|
|
119
|
+
else
|
|
120
|
+
CHANGELOG=$(git-cliff ${LAST_TAG}..HEAD --strip=header)
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
CHANGELOG=$(echo "$CHANGELOG" | sed "s/\[unreleased\]/[${NEW_VERSION#v}] - $(date +%Y-%m-%d)/i")
|
|
124
|
+
|
|
125
|
+
# Update CHANGELOG.md - insert new version above the previous version
|
|
126
|
+
# Create temporary file with the new changelog entry
|
|
127
|
+
echo "${CHANGELOG}" > temp_changelog.md
|
|
128
|
+
echo "" >> temp_changelog.md
|
|
129
|
+
|
|
130
|
+
# Insert the new changelog entry after the header (line 7) and before the first version entry
|
|
131
|
+
head -n 7 CHANGELOG.md > updated_changelog.md
|
|
132
|
+
cat temp_changelog.md >> updated_changelog.md
|
|
133
|
+
tail -n +8 CHANGELOG.md >> updated_changelog.md
|
|
134
|
+
mv updated_changelog.md CHANGELOG.md
|
|
135
|
+
rm temp_changelog.md
|
|
136
|
+
|
|
137
|
+
- name: build package
|
|
138
|
+
if: steps.version.outputs.bump != 'none'
|
|
139
|
+
run: |
|
|
140
|
+
uv build
|
|
141
|
+
|
|
142
|
+
- name: verify build
|
|
143
|
+
if: steps.version.outputs.bump != 'none'
|
|
144
|
+
run: |
|
|
145
|
+
# Verify the build artifacts exist
|
|
146
|
+
ls -la dist/
|
|
147
|
+
echo "Build artifacts:"
|
|
148
|
+
ls dist/
|
|
149
|
+
|
|
150
|
+
# Test that the version can be imported and matches
|
|
151
|
+
uv pip install dist/*.whl --force-reinstall
|
|
152
|
+
PACKAGE_VERSION=$(uv run python -c "import s2dm; print(s2dm.__version__)")
|
|
153
|
+
EXPECTED_VERSION=$(grep -E '^current_version = ' .bumpversion.toml | cut -d'"' -f2)
|
|
154
|
+
|
|
155
|
+
echo "Package version: $PACKAGE_VERSION"
|
|
156
|
+
echo "Expected version: $EXPECTED_VERSION"
|
|
157
|
+
|
|
158
|
+
if [ "$PACKAGE_VERSION" != "$EXPECTED_VERSION" ]; then
|
|
159
|
+
echo "ERROR: Version mismatch!"
|
|
160
|
+
exit 1
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
echo "✓ Build verification successful"
|
|
164
|
+
|
|
165
|
+
- name: commit and tag
|
|
166
|
+
if: steps.version.outputs.bump != 'none' && (github.event.inputs.dry_run != 'true')
|
|
167
|
+
run: |
|
|
168
|
+
# Stage all changes (version files and changelog)
|
|
169
|
+
git add .bumpversion.toml src/s2dm/__init__.py tests/test_s2dm.py CHANGELOG.md
|
|
170
|
+
git commit -m "chore: release ${NEW_VERSION}
|
|
171
|
+
|
|
172
|
+
- Bump version to ${NEW_VERSION#v}
|
|
173
|
+
- Update CHANGELOG.md"
|
|
174
|
+
|
|
175
|
+
# Create the tag on this commit
|
|
176
|
+
git tag ${NEW_VERSION}
|
|
177
|
+
|
|
178
|
+
- name: push changes
|
|
179
|
+
if: steps.version.outputs.bump != 'none' && (github.event.inputs.dry_run != 'true')
|
|
180
|
+
run: |
|
|
181
|
+
git push origin ${{ github.ref_name }} --tags
|
|
182
|
+
|
|
183
|
+
- name: create release
|
|
184
|
+
if: steps.version.outputs.bump != 'none' && (github.event.inputs.dry_run != 'true')
|
|
185
|
+
env:
|
|
186
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
187
|
+
run: |
|
|
188
|
+
# Generate changelog with git-cliff
|
|
189
|
+
LAST_TAG=$(git tag --sort=-version:refname | sed -n '2p')
|
|
190
|
+
if [ -z "$LAST_TAG" ]; then
|
|
191
|
+
CHANGELOG=$(git-cliff --latest --strip=header)
|
|
192
|
+
else
|
|
193
|
+
CHANGELOG=$(git-cliff ${LAST_TAG}..${NEW_VERSION} --strip=header)
|
|
194
|
+
fi
|
|
195
|
+
|
|
196
|
+
# Create GitHub release
|
|
197
|
+
gh release create ${NEW_VERSION} \
|
|
198
|
+
--title "${NEW_VERSION}" \
|
|
199
|
+
--notes "## Changes
|
|
200
|
+
|
|
201
|
+
${CHANGELOG}"
|
|
202
|
+
|
|
203
|
+
- name: dry run summary
|
|
204
|
+
if: steps.version.outputs.bump != 'none' && github.event.inputs.dry_run == 'true'
|
|
205
|
+
run: |
|
|
206
|
+
echo "DRY RUN MODE"
|
|
207
|
+
echo "============================================"
|
|
208
|
+
echo "The following would be released:"
|
|
209
|
+
echo " Version: ${NEW_VERSION}"
|
|
210
|
+
echo " Package version: $(uv run python -c 'import s2dm; print(s2dm.__version__)')"
|
|
211
|
+
echo ""
|
|
212
|
+
echo "Build artifacts:"
|
|
213
|
+
ls -lh dist/
|
|
214
|
+
echo ""
|
|
215
|
+
echo "Skipped steps:"
|
|
216
|
+
echo " Git commit and tag"
|
|
217
|
+
echo " Push to repository"
|
|
218
|
+
echo " GitHub release creation"
|
|
219
|
+
echo " Publish to PyPI"
|
|
220
|
+
|
|
221
|
+
- name: publish to pypi
|
|
222
|
+
if: steps.version.outputs.bump != 'none' && (github.event.inputs.dry_run != 'true')
|
|
223
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
224
|
+
with:
|
|
225
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
s2dm-0.16.2/.gitignore
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# macOS-specific files
|
|
2
|
+
*.DS_Store
|
|
3
|
+
|
|
4
|
+
# Node.js dependencies and build artifacts
|
|
5
|
+
node_modules/
|
|
6
|
+
npm-debug.log*
|
|
7
|
+
yarn-debug.log*
|
|
8
|
+
yarn-error.log*
|
|
9
|
+
.npm
|
|
10
|
+
.eslintcache
|
|
11
|
+
.stylelintcache
|
|
12
|
+
|
|
13
|
+
# Hugo build artifacts
|
|
14
|
+
public/
|
|
15
|
+
.hugo_build.lock
|
|
16
|
+
hugo_stats.json
|
|
17
|
+
resources/_gen/
|
|
18
|
+
docs-gen/resources/_gen/
|
|
19
|
+
|
|
20
|
+
# Local configuration files
|
|
21
|
+
.envrc
|
|
22
|
+
.vscode
|
|
23
|
+
|
|
24
|
+
# Byte-compiled / optimized / DLL files
|
|
25
|
+
__pycache__/
|
|
26
|
+
*.py[cod]
|
|
27
|
+
*$py.class
|
|
28
|
+
|
|
29
|
+
# C extensions
|
|
30
|
+
*.so
|
|
31
|
+
|
|
32
|
+
# Distribution / packaging
|
|
33
|
+
.Python
|
|
34
|
+
build/
|
|
35
|
+
develop-eggs/
|
|
36
|
+
dist/
|
|
37
|
+
downloads/
|
|
38
|
+
eggs/
|
|
39
|
+
.eggs/
|
|
40
|
+
lib/
|
|
41
|
+
lib64/
|
|
42
|
+
parts/
|
|
43
|
+
sdist/
|
|
44
|
+
var/
|
|
45
|
+
wheels/
|
|
46
|
+
share/python-wheels/
|
|
47
|
+
*.egg-info/
|
|
48
|
+
.installed.cfg
|
|
49
|
+
*.egg
|
|
50
|
+
MANIFEST
|
|
51
|
+
|
|
52
|
+
# PyInstaller
|
|
53
|
+
# Usually these files are written by a python script from a template
|
|
54
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
55
|
+
*.manifest
|
|
56
|
+
*.spec
|
|
57
|
+
|
|
58
|
+
# Installer logs
|
|
59
|
+
pip-log.txt
|
|
60
|
+
pip-delete-this-directory.txt
|
|
61
|
+
|
|
62
|
+
# Unit test / coverage reports
|
|
63
|
+
htmlcov/
|
|
64
|
+
.tox/
|
|
65
|
+
.nox/
|
|
66
|
+
.coverage
|
|
67
|
+
.coverage.*
|
|
68
|
+
.cache
|
|
69
|
+
nosetests.xml
|
|
70
|
+
coverage.xml
|
|
71
|
+
*.cover
|
|
72
|
+
*.py,cover
|
|
73
|
+
.hypothesis/
|
|
74
|
+
.pytest_cache/
|
|
75
|
+
cover/
|
|
76
|
+
|
|
77
|
+
# Translations
|
|
78
|
+
*.mo
|
|
79
|
+
*.pot
|
|
80
|
+
|
|
81
|
+
# Django stuff:
|
|
82
|
+
*.log
|
|
83
|
+
local_settings.py
|
|
84
|
+
db.sqlite3
|
|
85
|
+
db.sqlite3-journal
|
|
86
|
+
|
|
87
|
+
# Flask stuff:
|
|
88
|
+
instance/
|
|
89
|
+
.webassets-cache
|
|
90
|
+
|
|
91
|
+
# Scrapy stuff:
|
|
92
|
+
.scrapy
|
|
93
|
+
|
|
94
|
+
# Sphinx documentation
|
|
95
|
+
docs/_build/
|
|
96
|
+
|
|
97
|
+
# PyBuilder
|
|
98
|
+
.pybuilder/
|
|
99
|
+
target/
|
|
100
|
+
|
|
101
|
+
# Jupyter Notebook
|
|
102
|
+
.ipynb_checkpoints
|
|
103
|
+
|
|
104
|
+
# IPython
|
|
105
|
+
profile_default/
|
|
106
|
+
ipython_config.py
|
|
107
|
+
|
|
108
|
+
# pyenv
|
|
109
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
110
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
111
|
+
# .python-version
|
|
112
|
+
|
|
113
|
+
# pipenv
|
|
114
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
115
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
116
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
117
|
+
# install all needed dependencies.
|
|
118
|
+
#Pipfile.lock
|
|
119
|
+
|
|
120
|
+
# poetry
|
|
121
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
122
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
123
|
+
# commonly ignored for libraries.
|
|
124
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
125
|
+
#poetry.lock
|
|
126
|
+
|
|
127
|
+
# pdm
|
|
128
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
129
|
+
#pdm.lock
|
|
130
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
131
|
+
# in version control.
|
|
132
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
133
|
+
.pdm.toml
|
|
134
|
+
|
|
135
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
136
|
+
__pypackages__/
|
|
137
|
+
|
|
138
|
+
# Celery stuff
|
|
139
|
+
celerybeat-schedule
|
|
140
|
+
celerybeat.pid
|
|
141
|
+
|
|
142
|
+
# SageMath parsed files
|
|
143
|
+
*.sage.py
|
|
144
|
+
|
|
145
|
+
# Environments
|
|
146
|
+
.env
|
|
147
|
+
.venv
|
|
148
|
+
env/
|
|
149
|
+
venv/
|
|
150
|
+
ENV/
|
|
151
|
+
env.bak/
|
|
152
|
+
venv.bak/
|
|
153
|
+
|
|
154
|
+
# Spyder project settings
|
|
155
|
+
.spyderproject
|
|
156
|
+
.spyproject
|
|
157
|
+
|
|
158
|
+
# Rope project settings
|
|
159
|
+
.ropeproject
|
|
160
|
+
|
|
161
|
+
# mkdocs documentation
|
|
162
|
+
/site
|
|
163
|
+
|
|
164
|
+
# mypy
|
|
165
|
+
.mypy_cache/
|
|
166
|
+
.dmypy.json
|
|
167
|
+
dmypy.json
|
|
168
|
+
|
|
169
|
+
# Pyre type checker
|
|
170
|
+
.pyre/
|
|
171
|
+
|
|
172
|
+
# pytype static type analyzer
|
|
173
|
+
.pytype/
|
|
174
|
+
|
|
175
|
+
# Cython debug symbols
|
|
176
|
+
cython_debug/
|
|
177
|
+
|
|
178
|
+
# PyCharm
|
|
179
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
180
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
181
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
182
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
183
|
+
.idea/
|
|
184
|
+
.cursor/
|
s2dm-0.16.2/.gitlint
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[general]
|
|
2
|
+
|
|
3
|
+
# Ignore rules, reference them by id or name (comma-separated)
|
|
4
|
+
|
|
5
|
+
ignore=B6
|
|
6
|
+
|
|
7
|
+
# Use search semantics for regex matching
|
|
8
|
+
|
|
9
|
+
regex-style-search=True
|
|
10
|
+
|
|
11
|
+
# Enable specific community contributed rules
|
|
12
|
+
|
|
13
|
+
contrib=contrib-title-conventional-commits,CC1
|
|
14
|
+
|
|
15
|
+
# Set the extra-path where gitlint will search for user defined rules
|
|
16
|
+
|
|
17
|
+
# extra-path=./gitlint_rules/my_rules.py
|
|
18
|
+
|
|
19
|
+
### Configuring rules ###
|
|
20
|
+
|
|
21
|
+
[title-max-length]
|
|
22
|
+
line-length=100
|
|
23
|
+
|
|
24
|
+
[title-min-length]
|
|
25
|
+
min-length=5
|
|
26
|
+
|
|
27
|
+
# Ignore all rules for GitHub Actions or depdenabot bot commits
|
|
28
|
+
|
|
29
|
+
[ignore-by-author-name]
|
|
30
|
+
regex=(GitHub Action|^(dependabot\[bot\]|dependabot))
|
|
31
|
+
ignore=all
|
s2dm-0.16.2/.gitmodules
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[tool.bumpversion]
|
|
2
|
+
current_version = "0.0.0"
|
|
3
|
+
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
4
|
+
serialize = ["{major}.{minor}.{patch}"]
|
|
5
|
+
search = "{current_version}"
|
|
6
|
+
replace = "{new_version}"
|
|
7
|
+
regex = false
|
|
8
|
+
ignore_missing_version = false
|
|
9
|
+
ignore_missing_files = false
|
|
10
|
+
tag = true
|
|
11
|
+
sign_tags = false
|
|
12
|
+
tag_name = "v{new_version}"
|
|
13
|
+
tag_message = "Bump version: {current_version} → {new_version}"
|
|
14
|
+
allow_dirty = false
|
|
15
|
+
commit = true
|
|
16
|
+
message = "chore: bump version {current_version} → {new_version}"
|
|
17
|
+
moveable_tags = []
|
|
18
|
+
commit_args = ""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Modeling Guide
|