-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make it better #4
Comments
Thanks for the write up! Looks like our aim here is a bit ambitious, but who does not like doing crazy stuff in the free time. Anyway, here's my current thinking - happy to hear your feedback and let's start! I think we should switch from grouping by a commit message / details to group by a files touched. That prevents things when one commits I don't think we need to clone the Git repository since the user is probably going to have it already. I propose the main interface to be: $ ./make-release-notes 0.25-stable...0.26-stable so that they follow the diff view semantics here. All we would need to do here is to make sure one has all required branches and that they are up to date. That also makes it easy to move it to In terms of grouping, I would prefer an object similar to the one below: const settings = {
ios: [],
android: [],
general: [],
ignore: [],
}; that defines an array of regexp rules for each That would obviously require some extra work to specify all paths, but it gives us loads of possibilities, like:
So that is the first step. Let's imagine the main interface to be: type Commit = {} // to be discussed if an object or just SHA
type CommitPlatform = $Enum<typeof {
Android: 'Android',
IOS: 'iOS',
General: 'General',
}>
type CommitType = $Enum<typeof {
Feature: 'Feature',
Bug: 'Bug',
Deprecation: 'Deprecation',
}>
function filterOutSmallishCommits(): Array<Commit> {};
function groupByPlatform(commits: Array<Commit>): Map<CommitPlatform, Array<Commit>> {};
function groupByType(commits: Array<Commit>): Map<CommitType, Array<Commit>> {};
function getReleaseNotes() {
const commits = groupByPlatform(filterOutSmallishCommits());
return _.mapValues(commits, (list: Array<Commit>) => {
return groupByType(list);
});
} Note The above flow type definitions 99% have some issues, but just demoing basic idea The The I don't have an opinion how to group by severity yet, so for now - let's just assume it's a function that will return an array of commits grouped by platform and then, grouped by the type. |
I'd love to make the RN release notes process painless. At the moment this script does a very basic and dummy classification (checks for some keywords, either related to the platform or to check if the commit is bug, feature or other).
All that is not clever and only helps with the initial draft of the markdown file, but it saves some time already.
The bad parts
Possible solutions
The text was updated successfully, but these errors were encountered: