@troylar/flightdeck 2.8.0 → 2.9.0
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.
- package/CHANGELOG.md +16 -0
- package/README.md +2 -1
- package/bin/flightdeck.js +7 -1
- package/dist/flightdeck.html +637 -88
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Generated by build.py from src/releases.json. Edit that file, not this one. -->
|
|
4
4
|
|
|
5
|
+
## 2.9.0 · Oct 27, 2026
|
|
6
|
+
|
|
7
|
+
Team values.
|
|
8
|
+
|
|
9
|
+
### New
|
|
10
|
+
|
|
11
|
+
- **Keep the team's shared settings in one place** (Settings). Settings › Team values holds settings the whole team uses, like a Bitbucket base URL, each with what it's for. The folder owner and backup owner add, change and remove them; everyone else sees them. Values are trimmed, and the page reminds you not to store passwords or tokens there. If someone else changed the list first, nothing is saved over it: the list reloads and you make the change again. *Where:* Settings, Team values
|
|
12
|
+
- **Pass a team value to a linked run** (Editor). A child detail's source can be A team value, chosen from the folder's list with what each one is for and what it is now. The Markdown gets pass: base=team:bitbucket-base-url. A name that isn't in the folder is flagged in the editor and stops publishing. *Where:* Editing a draft, a Run another process step
|
|
13
|
+
- **The child gets the team value as it is when it starts** (Runs). The team value is read when the child starts and copied into it, so a later change never changes a started child. One that isn't set is asked for this run. If it changes while you fill in the form or while the child is saved, nothing starts and the form opens again with the new value and your answers. A child that changes it doesn't complete the step. *Where:* The run screen, a Run another process step
|
|
14
|
+
|
|
15
|
+
### Improved
|
|
16
|
+
|
|
17
|
+
- **Link it asks you to confirm team values** (Runs). A run started for a step but never linked can still be linked. On a step that passes team values, Link it shows the run's values and links them only once you confirm them, as shown. If the run changes while you're looking, it shows the new values first. *Where:* The run screen, a run that isn't linked
|
|
18
|
+
- **Folder health checks team-values.json** (Folder health). A team-values.json that can't be read, a conflict copy of it, and a published step whose team value was removed later are each listed with what to do. *Where:* Settings, Folder health
|
|
19
|
+
- **A checklist that passes a team value needs Flightdeck 2.9** (Compatibility). A version that passes a team value, and its runs, open only in Flightdeck 2.9 or later; earlier copies name the version and won't run it. A checklist without one publishes exactly as before. *Where:* Publishing and older copies
|
|
20
|
+
|
|
5
21
|
## 2.8.0 · Oct 26, 2026
|
|
6
22
|
|
|
7
23
|
Nested processes that know what the child needs.
|
package/README.md
CHANGED
|
@@ -223,7 +223,7 @@ roles: release-lead, qa, backend
|
|
|
223
223
|
| `## Gate:` · `approves:` | The pause point, and exactly what passing it approves |
|
|
224
224
|
| `### Track: Name @role` | Parallel work inside a phase |
|
|
225
225
|
| `at:` · `due:` · `after:` | A clock time, a deadline, or a due time after the run starts |
|
|
226
|
-
| `{run.process}` · `carry:` · `pass:` · `version:` | Start another process as a linked child run, passing these details (under another name, as a fixed value, or asked when it starts, with `pass:`, 2.8), on an exact version if you name one |
|
|
226
|
+
| `{run.process}` · `carry:` · `pass:` · `version:` | Start another process as a linked child run, passing these details (under another name, as a fixed value, or asked when it starts, with `pass:`, 2.8; or a team value, `team:`, 2.9), on an exact version if you name one |
|
|
227
227
|
| `group:` · `tags:` | Where the process sits in your hierarchy, and how to find it |
|
|
228
228
|
| `context: rows:number, due:date` | Typed run details (number, yes-no, date, choice, link), checked as they're typed |
|
|
229
229
|
| `> note` · `` | A note or screenshot, under a step, a phase or a gate |
|
|
@@ -308,6 +308,7 @@ More in [Flightdeck and OneDrive](https://github.com/troylar/flightdeck/blob/mai
|
|
|
308
308
|
|
|
309
309
|
```
|
|
310
310
|
people.json who's on the team, with the folder owner and backup owner
|
|
311
|
+
team-values.json shared settings like a Bitbucket base URL, changed in Settings by the folder owner and backup owner
|
|
311
312
|
maps/drafts/ checklists being written (Markdown)
|
|
312
313
|
publications/ published versions, frozen (Flightdeck writes these)
|
|
313
314
|
staged/ staged versions only test runs use, and each retire or reopen, written once
|
package/bin/flightdeck.js
CHANGED
|
@@ -1515,7 +1515,13 @@ async function draftMain(argv) {
|
|
|
1515
1515
|
(p ? p.broken : []).forEach((x) => { if (!x._readFailed) { const k = PF.appjson.pubProblem(x); L.note('publications/' + n + '/' + x.folder + '/', k.kind, k.why); } });
|
|
1516
1516
|
} catch (e) { procs[n] = { latest: null, all: [], clashes: [], broken: [], unlisted: 'publications/' + n + '/ couldn\'t be read' }; }
|
|
1517
1517
|
}
|
|
1518
|
-
|
|
1518
|
+
/* Team values (2.9), through the same ledger: a failed read is noted by the ledger; damaged or newer content here. */
|
|
1519
|
+
let tv;
|
|
1520
|
+
if (M.steps(map).some((x) => x.step.type === 'run.process' && PF.links.teams(x.step).length)) {
|
|
1521
|
+
tv = await PF.repo.readTeamValues(rfs);
|
|
1522
|
+
if (tv.state === 'malformed' || tv.state === 'newer') L.note(PF.teamValues.FILE, tv.state, tv.why);
|
|
1523
|
+
}
|
|
1524
|
+
const c = M.check(map, { people: [], types: {}, workflows: {}, processes: [], children: PF.links.childrenFrom(procs), teamValues: tv });
|
|
1519
1525
|
return { checks: { blockers: c.blockers, suggestions: c.suggestions }, problems: L.problems() };
|
|
1520
1526
|
};
|
|
1521
1527
|
/* Every problem once: the draft's reads, then the children's. */
|