{"action":"closed","issue":{"url":"https://api.github.com/repos/sweetalert2/sweetalert2/issues/511","repository_url":"https://api.github.com/repos/sweetalert2/sweetalert2","labels_url":"https://api.github.com/repos/sweetalert2/sweetalert2/issues/511/labels{/name}","comments_url":"https://api.github.com/repos/sweetalert2/sweetalert2/issues/511/comments","events_url":"https://api.github.com/repos/sweetalert2/sweetalert2/issues/511/events","html_url":"https://github.com/sweetalert2/sweetalert2/issues/511","id":223364031,"node_id":"MDU6SXNzdWUyMjMzNjQwMzE=","number":511,"title":"Add semantic-release to improve the workflow","user":{"login":"toverux","id":1343250,"node_id":"MDQ6VXNlcjEzNDMyNTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1343250?v=4","gravatar_id":"","url":"https://api.github.com/users/toverux","html_url":"https://github.com/toverux","followers_url":"https://api.github.com/users/toverux/followers","following_url":"https://api.github.com/users/toverux/following{/other_user}","gists_url":"https://api.github.com/users/toverux/gists{/gist_id}","starred_url":"https://api.github.com/users/toverux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toverux/subscriptions","organizations_url":"https://api.github.com/users/toverux/orgs","repos_url":"https://api.github.com/users/toverux/repos","events_url":"https://api.github.com/users/toverux/events{/privacy}","received_events_url":"https://api.github.com/users/toverux/received_events","type":"User","site_admin":false},"labels":[{"id":588866924,"node_id":"MDU6TGFiZWw1ODg4NjY5MjQ=","url":"https://api.github.com/repos/sweetalert2/sweetalert2/labels/domain:%20devel","name":"domain: devel","color":"cfe3f9","default":false},{"id":162672439,"node_id":"MDU6TGFiZWwxNjI2NzI0Mzk=","url":"https://api.github.com/repos/sweetalert2/sweetalert2/labels/type:%20feature","name":"type: feature","color":"f0f0f0","default":false}],"state":"closed","locked":false,"assignee":{"login":"toverux","id":1343250,"node_id":"MDQ6VXNlcjEzNDMyNTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1343250?v=4","gravatar_id":"","url":"https://api.github.com/users/toverux","html_url":"https://github.com/toverux","followers_url":"https://api.github.com/users/toverux/followers","following_url":"https://api.github.com/users/toverux/following{/other_user}","gists_url":"https://api.github.com/users/toverux/gists{/gist_id}","starred_url":"https://api.github.com/users/toverux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toverux/subscriptions","organizations_url":"https://api.github.com/users/toverux/orgs","repos_url":"https://api.github.com/users/toverux/repos","events_url":"https://api.github.com/users/toverux/events{/privacy}","received_events_url":"https://api.github.com/users/toverux/received_events","type":"User","site_admin":false},"assignees":[{"login":"toverux","id":1343250,"node_id":"MDQ6VXNlcjEzNDMyNTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1343250?v=4","gravatar_id":"","url":"https://api.github.com/users/toverux","html_url":"https://github.com/toverux","followers_url":"https://api.github.com/users/toverux/followers","following_url":"https://api.github.com/users/toverux/following{/other_user}","gists_url":"https://api.github.com/users/toverux/gists{/gist_id}","starred_url":"https://api.github.com/users/toverux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toverux/subscriptions","organizations_url":"https://api.github.com/users/toverux/orgs","repos_url":"https://api.github.com/users/toverux/repos","events_url":"https://api.github.com/users/toverux/events{/privacy}","received_events_url":"https://api.github.com/users/toverux/received_events","type":"User","site_admin":false}],"milestone":null,"comments":20,"created_at":"2017-04-21T12:05:04Z","updated_at":"2018-09-06T18:44:09Z","closed_at":"2018-09-06T18:44:08Z","author_association":"MEMBER","body":"Recently I've used [semantic-release](https://github.com/semantic-release/semantic-release) on three packages I own. It's a pretty cool tool that enforces good versioning practices, as well as conventionally-formatted commit messages, etc.\r\n\r\nMain features:\r\n - Automatic publish on npm after the Travis build succeeds ;\r\n - Version management of the package: no need to calculate what will be the next version by hand, semantic-release parses the commit messages ([documentation](https://github.com/conventional-changelog-archived-repos/conventional-changelog-angular/blob/master/convention.md)) and sets the new version ;\r\n - Generates a changelog and creates a GitHub release with it. Also tags a version on git. [See an example of the generated output here](https://github.com/semantic-release/semantic-release/releases).\r\n\r\nExample of commit messages, given that the current version is 1.0.0 and the push is done before any other commit:\r\n\r\n```\r\nfix(some_module): no longer display things that souldn't be displayed\r\n```\r\nbumps the version to 1.0.1\r\n\r\n```\r\nfeat(some_module): implement things\r\n```\r\nbumps the version to 1.1.0\r\n\r\n```\r\nfeat(some_module): move to a fluent API\r\n\r\nBREAKING CHANGE: the ancient API no longer exists.\r\n```\r\nbumps the version to 2.0.0\r\n\r\nNow you can create a new branch for a new feature (ie. a PR) and do that:\r\n\r\n```\r\nfix(some_module): fix things up\r\nfeat(another_module): add myMetyhod()\r\nfeat(another_module): added a new alert type\r\n```\r\n\r\nWhen the branch gets merged into master, semantic-release will bump from 1.0.0 to 1.1.0. Which is exactly how things should be. It's exactly what we're doing now, but standardized and automated.\r\n\r\nWe could also use [commitizen](https://github.com/commitizen/cz-cli) with it to enforce good commit messages (we'll need to warn our contributors to respect those guidelines).\r\n\r\nI'm volunteer to sumbit a PR that adds semantic-release to our workflow (just a few lines of configuration, no CLI tool to run evertime, it's fully automated and runs on Travis).\r\nYour thoughts?"}}
{"actor":{"display_login":"limonte"}}