Skip to content

fix(import): RM-18427 Canonical changelog skeleton output - #50

Open
xavierandueza wants to merge 7 commits into
mainfrom
feature/rm-18416-changelogs-batch-upload
Open

xavierandueza wants to merge 7 commits into
mainfrom
feature/rm-18416-changelogs-batch-upload

Conversation

@xavierandueza

@xavierandueza xavierandueza commented Sep 13, 2026

Copy link
Copy Markdown
Contributor
🚥 Resolves RM-18427

Parent ticket: RM-18416

🧰 Changes

  • Changelog skeleton pages now output to changelogs/ rather than changelog (matching gitto).
  • Changelogs avoid case-insensitive collisions.

🧬 QA & Testing

  • Confirmed changelog imports emit only flat changelogs/ entries, preserve an unsplit non-colliding filename, and retain distinct case-folding collision entries before finalization.
  • Confirmed that with associated PR on cli runner that this works

@xavierandueza xavierandueza self-assigned this Sep 13, 2026
@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no actionable issue was introduced since the previous review.

Reviews (7) · Last reviewed commit: "fix: use medium Sonnet reasoning effort"

@xavierandueza

Copy link
Copy Markdown
Contributor Author

(agent response) Acknowledged — no changes needed; the review found no regressions and considers the canonical changelog layout safe to merge.

@xavierandueza xavierandueza left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want doc comments on the funcs identified, and a question on how/why the changelog slugs are treated differently from the other ones.

ALSO - why do we call this planChangelogStagingSlugs -> what does 'staging' mean in this context? Doc comment could explain that, but if its not needed or maybe there's a better word we use that instead?

Comment thread src/commands/import.js Outdated
return n
}

function planChangelogStagingSlugs(categories, slugFor) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls add docstring to this for me with input and output args.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(agent response)
Added JSDoc for the category input, the in-place slug map mutation, and the void return. I also renamed the function to disambiguateChangelogSiblingSlugs so its purpose is explicit. 47a6883

Comment thread src/commands/import.js
planSiblings(changelogPages)
}

function allocateChangelogFilenames(pages) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls add docstring to this for me with input and output args.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(agent response)
Added JSDoc describing the flattened changelog path input and the ordered filename-array output. 47a6883

Comment thread src/commands/import.js Outdated
return n
}

function planChangelogStagingSlugs(categories, slugFor) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also - why is this different from the way that we do slugs for guides? What's the reason for the difference between the two?
Not saying its wrong but want to understand why

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(agent response)
Guides retain their directory hierarchy, so filesystem names remain separated by directory. Changelogs are flattened into one changelogs/ directory, which creates cross-level and case-insensitive filename collisions; sibling slugs must also be disambiguated before writing the intermediate skeleton so files are not overwritten on case-insensitive filesystems. Renamed the function to remove the ambiguous “staging” wording and documented the distinction. 47a6883

Comment thread src/commands/import.js
@xavierandueza
xavierandueza marked this pull request as ready for review September 17, 2026 05:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant