{"id":50538532,"url":"https://github.com/novaeco-tech/novaeco-releases","last_synced_at":"2026-06-03T18:30:33.711Z","repository":{"id":326451380,"uuid":"1095793322","full_name":"novaeco-tech/novaeco-releases","owner":"novaeco-tech","description":"Hosts the release manifests, defining the artifacts for each stable ecosystem release.","archived":false,"fork":false,"pushed_at":"2026-03-24T10:34:37.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T18:50:14.187Z","etag":null,"topics":["bom","gitops","governance","novaeco","releases","versioning"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novaeco-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-13T14:26:24.000Z","updated_at":"2026-03-25T19:44:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/novaeco-tech/novaeco-releases","commit_stats":null,"previous_names":["novaeco-tech/ecosystem-releases"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/novaeco-tech/novaeco-releases","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaeco-tech%2Fnovaeco-releases","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaeco-tech%2Fnovaeco-releases/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaeco-tech%2Fnovaeco-releases/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaeco-tech%2Fnovaeco-releases/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novaeco-tech","download_url":"https://codeload.github.com/novaeco-tech/novaeco-releases/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaeco-tech%2Fnovaeco-releases/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bom","gitops","governance","novaeco","releases","versioning"],"created_at":"2026-06-03T18:30:32.493Z","updated_at":"2026-06-03T18:30:33.703Z","avatar_url":"https://github.com/novaeco-tech.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📦 NovaEco Releases\n\nThis repository is the central, authoritative source for all stable, ecosystem-wide releases.\n\nThis is a **\"tag-only\"** repository. It contains no source code. Its sole purpose is to host Git tags that correspond to a specific \"Ecosystem Release.\"\n\n## Release Strategy: CalVer + SemVer\n\nOur ecosystem uses a hybrid versioning strategy:\n\n1.  **Semantic Versioning (SemVer) (e.g., `novatrade-v1.5.0`)**\n\n      * **Where:** Used for individual artifacts (e.g., `novatrade-api.tar.gz`) in each `novaeco-tech` enabler/sector/worker/product repository.\n      * **Purpose:** Tracks the independent development and features of each microservice.\n\n2.  **Calendar Versioning (CalVer) (e.g., `v2026.11.01`)**\n\n      * **Where:** Used *only* in this `ecosystem-releases` repository.\n      * **Purpose:** Represents a \"snapshot\" of the entire ecosystem, composed of a list of SemVer artifacts that have been tested and are confirmed to work together.\n\n## Release Workflow: The \"Bill of Materials\"\n\nA \"Release\" in this repository is a **CalVer Git tag** (e.g., `v2026.11.01`) that contains a `release-manifest.json` file in its body.\n\nThis manifest is the \"bill of materials\" that tells the downstream deployment system *exactly* which artifact versions to assemble and deploy.\n\n### **Manual Release Process (For Release Managers)**\n\nPublishing a new release is a **manual, human-gated** action that triggers the production deployment.\n\n1.  **Verify Stable Artifacts:** Go to the `novaeco-tech/ecosystem-qa` repository and identify the set of \"Stable\" (promoted from pre-release) artifact tags you want to include in this new ecosystem release.\n\n2.  **Create the Manifest:** Create a `release-manifest.json` file on your local machine. This file lists the *exact* Git tag for each artifact to be deployed.\n\n3.  **Draft a New Release:**\n\n      * Go to the \"Releases\" page of *this* (`ecosystem-releases`) repository.\n      * Click \"Draft a new release.\"\n      * In the \"Choose a tag\" box, type a **new CalVer tag** (e.g., `v2026.11.01`). Click \"Create new tag on publish.\"\n      * Set the \"Release title\" to the same tag.\n      * In the release body, paste the entire contents of your `release-manifest.json` file, wrapped in a JSON code block.\n\n4.  **Publish the Release:**\n\n      * Review the manifest one last time.\n      * Click **\"Publish release\"**.\n\n### Automation (What happens next?)\n\nClicking \"Publish\" triggers two parallel workflows:\n\n1.  **Validation (`validate-release.yml`):** Ensures your JSON syntax is correct and required fields are present.\n2.  **Signaling (`signal-operations.yml`):** Sends a secure, blind dispatch event to the commercial operator to begin the production deployment.\n\n### Example: Sample Configuration (release-manifest.json)\n\nThis example demonstrates the structure for a release that includes one of each component type. Note that Enablers, Sectors, and Products typically have three artifacts (`api`, `app`, `website`), while Core has four (`api`, `app`, `auth`, `website`) and Workers have only one.\n\n```json\n{\n  \"version\": \"v2026.11.01\",\n  \"description\": \"Sample release showcasing the diverse artifact types in the NovaEco architecture.\",\n  \"artifacts\": {\n    \"core\": {\n      \"ecosystem-core-api\": \"v1.2.1\",\n      \"ecosystem-core-app\": \"v1.2.5\",\n      \"ecosystem-core-auth\": \"v1.2.1\",\n      \"ecosystem-core-website\": \"v1.2.4\"\n    },\n    \"enablers\": {\n      \"novatrade-api\": \"v1.5.0\",\n      \"novatrade-app\": \"v1.5.0\",\n      \"novatrade-website\": \"v1.5.0\"\n    },\n    \"sectors\": {\n      \"novaagro-api\": \"v1.3.2\",\n      \"novaagro-app\": \"v1.3.5\",\n      \"novaagro-website\": \"v1.3.0\"\n    },\n    \"products\": {\n      \"product-duras-agv-api\": \"v1.1.1\",\n      \"product-duras-agv-app\": \"v1.1.5\",\n      \"product-duras-agv-website\": \"v1.1.7\"\n    },\n    \"workers\": {\n      \"novanature-worker-bioacoustics\": \"v1.0.1\"\n    }\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovaeco-tech%2Fnovaeco-releases","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovaeco-tech%2Fnovaeco-releases","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovaeco-tech%2Fnovaeco-releases/lists"}