Code Monkey home page Code Monkey logo

github-release-notes's People

Contributors

aelbozie avatar alexcanessa avatar allcontributors[bot] avatar atry avatar blairg23 avatar cjbarth avatar dependabot[bot] avatar donmahallem avatar flavienbusseuil avatar fthomas avatar gitter-badger avatar harikrishnanbalagopal avatar jackocnr avatar joaquincorcherofmp avatar kstolte avatar kyeah avatar lianghx-319 avatar mariotacke avatar monicaribeiro avatar pachirel avatar pawk avatar tybot204 avatar v1v avatar viatrix avatar welldan28 avatar yogevbd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

github-release-notes's Issues

Unwrap github-api promises

Stop using the callback from the github-api promises and handle the response through the promise itself, same as for catching the errors.

Tag name in the options

Could be useful to have the tag name to release as an option. Default latest

The implementation would be at: (line 164)

tags.filter(function(tag, index) {
    return (index === 0 || tag.name === releaseTagName);
})

Check if there are no tags

Manage the case where there are no tags in the repo.

Currently:

Getting the list of releases: ....... (0.64 secs)
0 releases found
Getting tags: .... (0.33 secs)
Tags found:
Getting the tag dates ranges: . (0.00 secs)
Creating the body blocks from releases:
Getting all closed issues: .
Task(s) stopped because of the following error:
TypeError: Cannot read property '1' of undefined

Cleanse option

Allow to --cleanse, so to delete all the tags between the latest tag (the new release) and the latest release.

Fix object-deep-assign bug

Since not part of dependencies, object-deep-assign is undefined.

[Error: Cannot find module 'object-assign-deep']

Specify which tag to build

I want to have the chance to build the release of a specific tag, e.g. --tags=0.1.0.
This would create the release notes based on the tag 0.1.0 and the previous one.

I also want to specify the range between two tags, so --tags=2.0.0,1.0.0 would create the release notes with all the issues closed between those two tags.

Remove the releases limit

Apparently there is a bug which stops the script to run more than 30 releases. It might be a pagination thing coming from the APIs.

Needs further investigation.

Include various types of commit messages

It would be useful to include options eg.

  • --Include=All
  • --Include=Commits
  • --Include=MergePull

to return for example merge pull request commit messages at the moment it only returns commit messages

image

Add the chance to rebuild the history of release notes

Have the flag for history releases or latest (default).

If history:

  • check all the release, and create the body for all of them.
  • create the full changelog
  • if the changelog or the release body already exist, stop.
  • if the option override is true, then override both changelog and release notes

Error when there is only one tag

If I try to run the script on repos with one tag only, I get this error:

Task(s) stopped because of the following error:
TypeError: Cannot read property 'name' of undefined

Check the network

Check the network before starting the task, and fail if there is no network

Use different files type for configuration

Would be nice to have the chance of having different type of files for configuration.

Right now only .json is allowed.

The script would look for:

  • .grenrc.json
  • .grenrc.yml
  • .grenrc.yaml
  • .grenrc.js
  • .grenrc

Migrate to ES2015

Since the module is getting bigger and bigger, would be easier to manage it if using ES2015 classes.

After this will be implemented we can also create more unit tests to improve the stability of the module.

Use milestones to create release notes

Give the option to:

  1. List only issues that have Milestones, which I imagine would be just an option:
{
    "onlyMilestones": true
}
  1. Create release notes based on milestones rather then on dates. only applicable to issues
    To achieve it we need to create a matching system between the tag name and the milestone naming convention.
{
    "dataSource": "milestones",
    "milestoneMatch": "Release {{tag_name}}"
}
  1. Use the description of the milestone in the release body.
  2. Consider to filter only closed milestones (?)

Add tests

Create unit tests for utils and gren functions

Create a --help section

Would be nice to have the options listed with the description when there is the --help flag.

Rework the Changelog generator function

The changelog action now has some --override capacity which is not really needed.

What the changelog function should be responsible for should only be to update the current CHANGELOG.md using the existing releases.

  • The --override flag should only be able to override the latest release or a specific tag range.
  • Use the --tags=[] option to configure the release range too. optional
  • Would the changelog action be able to create release notes or should it just be based on the existing ones?

Expanded options for commit template variables

Unless I'm mistaken it seems message is the only variable available for templating commit entries. I was hoping to put together a changelog with a format something like:

[{{sha}}]({{url}}) {{message}} - {{author.name}}

I was wondering if there's a specific reason why commitMessages() just pulls out the commit message rather retaining the commit object (or a subset of it), which can then pass through the system eventually allowing generateCommitsBody() to template on more than just the commit message? If not, is this something that could be added?

Introduce templates for the issues

Give the opportunity to set a custom template for the issues in the options (maybe in a .grenrc file).

The reason is that I might want to output different types of information from the issue.

It could be something like:

templates: {
    issue: '{{labels}} {{text}} {{link}}'
}

Installing old versions of github-release-notes no longer works

Hey guys.

I think recent changes may have broken older versions of github-release-notes

We were using 0.4.0, if I make a brand new package.json with

{
  "name": "blah",
  "version": "1.0.0",
  "devDependencies": {
    "github-release-notes": "0.4.0",
    "install": "^0.8.7",
    "npm": "^4.4.1"
  }
}

and then run npm install

It errors out with fatal: Authentication failed for 'https://github.com/alexcanessa/github.git/'

I'm guessing it's because this repo existed in the past but has since been moved to the github-tools org but older versions of github-release-notes don't know that. So; heads up that older versions are broken.

Updating to the latest version of github-release-notes fixed it for us. Don't know if you want to do anything more to mitigate this issue for other people.

Thanks for your time

Josh

Allow functions as template values

Since we have now a .grenrc.js file, is possible to pass functions to the template configuration.
We can update the code so to accept a function and use it to parse the informations.

This way the user can customise the output with JavaScript (e.g. date formatting #27)

README doesn't explain what gren does

Installed gren, created github key, ran gren, no errors... but nothing seems to have happened?

gren --help yields nothing useful.

What exactly is the expected result of all this? README seems to miss the mark in terms of explaining what this (hopefully useful) tool does, I'm afraid.

FWIW, my console output:


kieffer@MacBook-Pro-3$ pwd
/Users/kieffer/projects/node-mime

kieffer@MacBook-Pro-3$ lsf
total 80
-rw-r--r--   1 kieffer  staff  1098 May 11 21:53 LICENSE
-rw-r--r--   1 kieffer  staff  1894 Sep 12 15:32 Mime.js
-rw-r--r--   1 kieffer  staff  5053 Sep 12 15:40 README.md
-rw-r--r--   1 kieffer  staff   150 Sep 12 15:32 cli.js
-rw-r--r--   1 kieffer  staff   114 Sep 12 15:32 index.js
-rw-r--r--   1 kieffer  staff    88 Sep 12 15:32 lite.js
drwxr-xr-x  35 kieffer  staff  1190 Sep 12 15:44 node_modules/
-rw-r--r--   1 kieffer  staff  8168 Sep 12 15:44 package-lock.json
-rw-r--r--   1 kieffer  staff   962 Sep 12 15:44 package.json
drwxr-xr-x   6 kieffer  staff   204 Sep 12 15:40 src/
drwxr-xr-x   4 kieffer  staff   136 Sep 12 15:32 types/

kieffer@MacBook-Pro-3$ gren

Release task:
===================================
Getting the list of releases: ..... (0.49 secs)
1 releases found
Getting tags: .... (0.33 secs)
Tags found: v1.4.0, v1.3.6
Getting the tag dates ranges: .... (0.34 secs)
Creating the body blocks from releases:
Getting all closed issues: ...... (0.52 secs)
13 issues found
Skipping v1.4.0 (use --override to replace it)

kieffer@MacBook-Pro-3$ lsf
total 80
-rw-r--r--   1 kieffer  staff  1098 May 11 21:53 LICENSE
-rw-r--r--   1 kieffer  staff  1894 Sep 12 15:32 Mime.js
-rw-r--r--   1 kieffer  staff  5053 Sep 12 15:40 README.md
-rw-r--r--   1 kieffer  staff   150 Sep 12 15:32 cli.js
-rw-r--r--   1 kieffer  staff   114 Sep 12 15:32 index.js
-rw-r--r--   1 kieffer  staff    88 Sep 12 15:32 lite.js
drwxr-xr-x  35 kieffer  staff  1190 Sep 12 15:44 node_modules/
-rw-r--r--   1 kieffer  staff  8168 Sep 12 15:44 package-lock.json
-rw-r--r--   1 kieffer  staff   962 Sep 12 15:44 package.json
drwxr-xr-x   6 kieffer  staff   204 Sep 12 15:40 src/
drwxr-xr-x   4 kieffer  staff   136 Sep 12 15:32 types/

kieffer@MacBook-Pro-3$

Fix multiple repo information

When giving all the repo information the task fails with:

[TypeError: Cannot assign to read only property '0' of [object String]]

Issue coming from #28

Remove unused option user.name

There is an option user.name that, if not defined, makes everything crash.
Since we're not using that option at all, we can remove it and fix the issue.

This bug comes from #28

Support pull requests without associated issues

Pull requests have all the discussion, tagging, search, project management, and other features of issues. But often, in a gren-enabled project, I'm still forced to create a separate issue when I've already made the PR that would close it (e.g. for a previously-unreported problem) because otherwise, the release notes would be incomplete. This adds overhead to what can be a seamless GitHub workflow.

The solution: I think gren should treat merged PRs as their own, self-closing issues if they don't explicitly close any other issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.