question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

RFC: Publish release notes extensibility

See original GitHub issue

Problem

Release notes can have multiple homes, changesets updates the CHANGELOG.md files in the repo. We then have changesets/action which wraps the CLI tool to create a GitHub release.

This makes the responsibilities of the changeset components a bit difficult to understand. Git tagging is done by the changeset tool, but then the release is published by an external tool. Also the changeset action facilitates a very specific workflow, if you don’t use that workflow then it’s pretty clunky to get GitHub releases published.

Related issues

https://github.com/changesets/changesets/issues/264 https://github.com/changesets/changesets/issues/387

Proposed solution

New extension point which ‘publishes’ the release notes, it is run directly after tagging. I think the word publish is being overloaded though. Maybe we should call this ‘target’ or something else?

This will open up publishing release notes to BitBucket, GitLab or even to JIRA or other tools like Octopus Deploy etc.

Config

  "publish": [
    "@changesets/publish-github",
    { "repo": "changesets/changesets" }
  ],

There are a number of open issues, by splitting out the release notes publication step it would allow config for that package to be introduced, reducing top level config sprawl but also give the escape hatch

Migration

The changeset/action component should detect if the github publisher is not being used and create a note inside the PR to update your config. If it detects the config change has been made, it will no longer create the release because that will be done by changesets itself.

Issue Analytics

  • State:open
  • Created a year ago
  • Reactions:1
  • Comments:9 (8 by maintainers)

github_iconTop GitHub Comments

2reactions
Andaristcommented, Jul 8, 2022

There is a risk that it creates an ecosystem which feels like cobbling together tooling

This is my concern here - the given new CLI wouldn’t be completely decoupled from Changesets anyway because it would assume how the CHANGELOG.md has been generated, how headings are structured etc.

I somewhat doubt there is a huge demand for this being a separate CLI and I don’t think would get a lot of non-Changesets users. And at that point… what’s the point in separating them? :p

1reaction
Andaristcommented, Jul 5, 2022

I’d rename this config option to something like releaseNotes to make it clear what this component is about. One good thing about the current architecture~ is that changesets/action can be used without any further configuration. But perhaps in the future, it could provide the @changesets/release-notes-github as a default somehow. It can also continue working as it does for a considerable future (when changeset/config.json#releaseNotes would be absent).

We also need to figure out what arguments this should receive for it to create those release notes in a clean way.

I’d like to run this RFC by @mitchellhamilton before you get to implementing this - he might have some additional thoughts about this.

Read more comments on GitHub >

github_iconTop Results From Across the Web

RFC 8701 - Applying Generate Random Extensions And ...
Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility (RFC 8701, January 2020)
Read more >
RFC 5264: Publication of Partial Presence Information
RFC 5264 Partial Publication September 2008 Table of Contents 1. Introduction . ... The PIDF uses Extensible Markup Language (XML) [W3C.
Read more >
Evolution of HTTP - MDN Web Docs
HTTP/1.1 was first published as RFC 2068 in January 1997. More than 15 years of extensions. The extensibility of HTTP made it easy...
Read more >
Extensible Markup Language (XML) 1.0 (Fifth Edition)
3 Character Encoding in Entities. Note: Document authors are encouraged to avoid "compatibility characters", as defined in section 2.3 of [ ...
Read more >
Best Practices - API Principles
Fulfill Common Method Properties; Consider To Design POST and PATCH ... Note: {x-extensible-enum} is not JSON Schema conform but will be ignored by...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found