projects_management_system
Описание
Projects Management System
Языки
- Shell99,4%
- Makefile0,6%
🛠 Projects Management System
This repository provides the orchestration layer for managing versioned releases, DevOps automation, and modular tooling — built to scale across multiple projects.
It starts with as the first integrated example.
The system is built around a layered, script-first architecture using pure Bash and UNIX tools, emphasizing reproducibility, testability, and modularity.
📦 Each release is self-contained inside the
folder, fully versioned and isolated for traceability (e.g.,release/). “Bash Script Template Framework” forv.2/in minimal configuration (LLM-assistent refactoring)script_template.sh
🗂️ Contents
- ⏳ TODO
- 🧭 Philosophy
- 🧱 Design Principles
- 🔥 Features Overview
- 🧩 Architecture Overview
- ⚙️ Configuration (
Scopes).env - 🛠️ How to Use
- 📈 Roadmap
⏳ TODO
- Add the guide for the "LLM-assistent refactoring" based on
with minimal configuration.script_template.sh - Develop
to automate changes inside scriptsmodifier.sh - Design and expand test functionality
- Add GitHub-Rendered Diagram
- Finalize
commandmake release-pipeline -
Handle multiple projects perreleasev.X -
Refine per-projectoverrides.env
🧭 Philosophy
The system is built around a simple idea: make every release repeatable, traceable, and modular — without hiding behind opaque tooling.
Bash and standard tools keep it lightweight, transparent, and easy to debug as projects scale.
Every pipeline step is script-first, dry-run safe, and explicitly scoped via files.
Sharp separation between working and published sources, isolated version folders, and clear function-level logging are central principles.
🔹 Composable building blocks over monolithic flows: every action can be tested, run, and debugged independently.
🧱 Design Principles
- ✅ CI/CD ready: pure shell and Makefile commands, no extra dependencies.
- 🔄 Repeatable releases: artifacts are versioned, traceable, and dry-run safe.
- 📖 Clear documentation: includes workflow guides and file maps.
- 🧪 Self-testing flows: per-version test scripts (
).tests.sh - 🧠 Scriptable everything: simulate or trigger full releases manually, no CI lock-in.
🔁 All scripts default to
.DRY_RUN=true
Real changes only happen when explicitly set to.DRY_RUN=false
Each version (, , etc.) maintains its own scripts, docs, and Makefile under the directory, ensuring every project stays cleanly isolated and reproducible across time.
🔥 Features Overview
- 🧱 Versioned release pipelines (isolated per
folder)v.X/ - 📁 Working and published sources for curated projects (parallel synced trees)
- ⚙️ Dynamic
configurations (global, scripts layer, local project scope).env - 🛠 Script-first automation (bash-native steps)
- 🧪 Dry-run mode by default
- 🔍 Full traceability (logs, dry-runs, bash tracing)
- 🚀 GitHub Release integration
- 🔄 Composable steps (bump, publish, tag separately)
- 🧩 Makefile CLI wrappers (
,make bump)make publish - 🧹 Minimal dependencies (Bash, Git, UNIX tools only)
🧩 Architecture Overview
The system is built around a layered release structure, where each versioned folder (, , etc.) acts as a self-contained engine.
Built for:
- Isolation: per-version reproducibility
- Traceability: version-specific logs, tags, dry-runs
- Extensibility: easily add projects or pipelines
📁 Folder Structure
| Path | Purpose |
|---|---|
| Root of all versioned releases (e.g., , ), each fully isolated. |
| Active release folder: contains scripts, Makefile, docs, and curated project code. |
| Modular bash scripts: versioning, publishing, changelog management, and GitHub releases. |
| Backstage documentation: workflow guides, file references, contribution conventions. |
| Curated project folder — contains working and published code trees. |
⚙️ Core Components
| Component | Role |
|---|---|
| High-level runner: release pipelines internally. Useful for local dry-run, tests and CI debug sessions. |
| Backstage controller: actually performs the release actions. Respects flags like , , etc. |
| CLI façade: exposes all internal steps as simple commands (, , ). |
🛡️ Separation of concerns:
do orchestration →runner.shexecutes tasks →launcher.shwraps them for easy usage.Makefile
📦 Project Structure (inside a Release)
Each curated project inside a release has:
| Folder | Purpose |
|---|---|
| Editable development source. |
| Published clean copy, synced during release process. |
Synced during release via .
⚙️ Configuration (.env Scopes)
📌 Quick Visual Legend:
→ Globalrunner.shfile.env,launcher.sh→ Scripts layerscripts/'s.env- Per-project folders → Local project
.env
🧠 Notes on the .env Scopes (explained):
| Scope | Path | Purpose |
|---|---|---|
| Global scope | | Sets general environment variables for the whole system (e.g., , , base path). |
| Scripts layer | and/or (optional) | Every script () sources these files dynamically to configure behavior. |
| Local project scope | | Defines project-specific settings like , , etc. |
🛠️ How to Use
For the PMS itself
| Step | Command | Purpose |
|---|---|---|
| 0 | | Bootstrap versioning |
| 1 | | Add under . |
| 2 | (normal coding/commits) | Daily work. |
| 3 | Ready to release? → | Move Unreleased changes into a new version section + bump VERSION file. |
| 4 | | Stage the changes. |
| 5 | | Commit release bump. |
| 6 | | Create Git tag (signed if possible). |
| 7 | | Push changes and tags upstream. |
| 8 | |
For curated project
- Clone
- Edit or stage your project inside the
folder.*-work/ - Use Makefile commands:
— bump SemVer and update changelog.make bump— sync and prepare the publish copy.make publish— commit and tag release.make tag
📢 Always check
settings before running..env
📈 Roadmap
Near-term improvements planned:
- 🧪 Strengthen built-in test scripts (
) with CI-ready checkstests.sh - 🚀 Explore matrix release testing for multiple Python versions or project templates
- ✅ Add full
command (wraps full flow)make release-pipeline - ✅ Improve GitHub Release automation (attach zipped artifacts)
- 🧩 Add pluggable pre-publish and post-publish hooks
- 📚 Expand per-project contribution docs