You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge pull request #2 from Emin-ACIKGOZ/refactor-transaction-logic
# Changes:
- Native Transactions: Implemented a LIFO manager with automated backups for atomic "all-or-nothing" rollbacks.
- Security Hardening: Enforced project boundaries by canonicalizing task paths with filepath.Abs to block traversal.
- Modular VCS: Refactored Git into an optional template to support Git-free scaffolding.
- Test Isolation: Hardened the integration suite via environment variables to prevent host Git config leakage.
- Registry Parity: Unified language and template registries with deterministic sorting.
Copy file name to clipboardExpand all lines: README.md
+35-12Lines changed: 35 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@
15
15
Designed for flexibility. If a language pack is missing, simply **add it**. If a template doesn’t fit, you can **modify or replace it**. The handler interface simplifies extension.
16
16
17
17
-**Built-in Atomic Safety**
18
-
All modifications are wrapped in a **Git savepoint**. If any task fails, changes are automatically rolled back, restoring the repository to its exact previous state.
18
+
All modifications are managed by a **LIFO-based Transaction Manager**. If any task fails, the engine executes a journaled rollback. This deletes created artifacts and restores file backups in reverse order, ensuring the filesystem returns to its original state.
19
19
20
20
-**Prioritized Execution**
21
21
Tasks run in a defined order using **Priority Bands** (e.g., directory creation → language setup → universal config) to ensure dependencies are met.
@@ -24,13 +24,36 @@
24
24
25
25
## 🚀 Installation
26
26
27
-
#### (WIP)
27
+
`scbake` is currently in **alpha development**. There is no fixed method for installation or distribution beyond compiling from source at this stage.
28
+
29
+
### Build from Source
30
+
31
+
To compile the binary yourself, ensure you have **Go 1.21+** installed:
Creates a directory, initializes Git, sets up `scbake.toml`, and applies language packs and templates.
54
+
Creates a new directory, bootstraps the `scbake.toml` manifest, and applies language packs and templates.
55
+
56
+
**Note:** Git initialization can be added via the `--with git` template.
34
57
35
58
```bash
36
59
scbake new <project-name> [--lang <lang>] [--with <template...>]
@@ -50,7 +73,7 @@ scbake new my-backend --lang go --with makefile,ci_github
50
73
51
74
### `apply`: Apply Templates to an Existing Project
52
75
53
-
Applies new language packs or tooling templates to an existing path (requires a clean Git tree).
76
+
Applies new language packs or tooling templates to an existing path. Because `scbake` uses its own transaction logic, it does **not** require a clean Git tree to operate safely.
0 commit comments