@jens_astrup/release-manager 0.1.0-alpha.2 → 0.1.0-alpha.4

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.
@@ -4,12 +4,14 @@ import Spinner from 'ink-spinner';
4
4
  import { ProgressBar } from './ProgressBar.js';
5
5
  /**
6
6
  * Render a vertical list of steps. Running steps show a spinner; if a step
7
- * exposes a numeric progress value, render a determinate progress bar beneath
8
- * the label. Completed steps show a green check, failed steps show a red x,
9
- * skipped steps show a gray dash.
7
+ * exposes a numeric progress value (or null for indeterminate), render a
8
+ * progress bar beneath the label. Steps are spaced vertically so bars and
9
+ * wrapped labels do not collide with the next row. Completed steps show a green
10
+ * check, failed steps show a red x, skipped steps show a gray dash.
10
11
  */
11
12
  export function StepList({ steps }) {
12
- return (React.createElement(Box, { flexDirection: "column" }, steps.map((step) => (React.createElement(Box, { key: step.id, flexDirection: "column", marginBottom: 0 },
13
+ const stepCount = steps.length;
14
+ return (React.createElement(Box, { flexDirection: "column" }, steps.map((step, stepIndex) => (React.createElement(Box, { key: step.id, flexDirection: "column", marginBottom: stepIndex < stepCount - 1 ? 1 : 0 },
13
15
  React.createElement(Box, null,
14
16
  React.createElement(Box, { width: 3 }, step.status === 'running' ? (React.createElement(Text, { color: "cyan" },
15
17
  React.createElement(Spinner, { type: "dots" }))) : step.status === 'done' ? (React.createElement(Text, { color: "green" }, "\u2713")) : step.status === 'failed' ? (React.createElement(Text, { color: "red" }, "\u2717")) : step.status === 'skipped' ? (React.createElement(Text, { color: "gray" }, "\u2014")) : (React.createElement(Text, { color: "gray" }, "\u00B7"))),
@@ -11,7 +11,46 @@ You should take the title and description of each issue and write a concise summ
11
11
  The release notes should be in the following format:
12
12
 
13
13
  ## v1.0.0
14
- - [Issue Description] (Closes [ISSUE-ID](Issue URL))
14
+ - Issue Description (Closes [ISSUE-ID](Issue URL))
15
+ - Issue 2 Description (Closes [ISSUE-ID-2](Issue 2 URL))
16
+
17
+ ------
18
+ Example:
19
+
20
+ Input:
21
+ New version: v1.0.0
22
+ ---
23
+ Display profile information
24
+ Each user should see a button that opens their "profile information", consisting of a non-functional form for changing their display name.
25
+ https://linear.app/yenz/issue/ACE-205/display-modal-for-updating-profile-information
26
+ ---
27
+ Allow anonymous users to set name
28
+ Anonymous users should be able to set their display name
29
+ https://linear.app/yenz/issue/ACE-260/allow-anonymous-users-to-set-name
30
+ ---
31
+ Create changelog page
32
+ There is a static page which provides a comprehensive overview of GitHub releases. It consists of a list for each release, detailing any changes such as dependency updates, even if no new features are introduced. The page is back-populated with releases to ensure a complete history is available.
33
+
34
+ Acceptance Criteria:
35
+
36
+ A dedicated page is accessible from the footer displaying a list of all GitHub releases.
37
+
38
+ Each release entry includes a description of the changes made, such as dependency updates or bug fixes.
39
+
40
+ The app is capable of back-populating releases to include historical data.
41
+
42
+ The release information is accurate and up-to-date with the GitHub repository.
43
+
44
+ The page is user-friendly, with clear navigation and formatting for easy readability.
45
+
46
+ The difference between this comprehensive coverage of each release and the current changelog is clear
47
+ https://linear.app/yenz/issue/ACE-228/create-changelog-page
48
+
49
+ ------
50
+ Output:
51
+ ## v1.0.0
52
+ - Display modal for updating profile information (Closes [ACE-205](https://linear.app/yenz/issue/ACE-205/display-modal-for-updating-profile-information) and Closes [ACE-260](https://linear.app/yenz/issue/ACE-260/allow-anonymous-users-to-set-name))
53
+ - Create changelog page (Closes [ACE-228](https://linear.app/yenz/issue/ACE-228/create-changelog-page))
15
54
  `;
16
55
  function client() {
17
56
  return new OpenAI({ apiKey: requireEnv('OPENAI_API_KEY') });
@@ -97,7 +97,7 @@ export async function createReleaseFlow(args) {
97
97
  const url = await createPullRequest({
98
98
  owner: config.github.owner,
99
99
  repo: config.github.repo,
100
- title: `v${version}`,
100
+ title: version,
101
101
  body: notes,
102
102
  head: config.github.developBranch,
103
103
  base: config.github.mainBranch
@@ -25,8 +25,7 @@ export function CreateRelease({ config, onDone }) {
25
25
  {
26
26
  id: 'notes',
27
27
  label: 'Generate release notes with AI',
28
- status: 'pending',
29
- progress: 0
28
+ status: 'pending'
30
29
  },
31
30
  {
32
31
  id: 'pr',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jens_astrup/release-manager",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.4",
4
4
  "description": "Interactive CLI for creating release version bump PRs and releases with AI-generated notes. Built with Ink.",
5
5
  "type": "module",
6
6
  "author": "jens_astrup",