Skip to content
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

Standardize library, releases and processes #69

Open
10 tasks
rafa-suagu opened this issue Jun 2, 2020 · 6 comments
Open
10 tasks

Standardize library, releases and processes #69

rafa-suagu opened this issue Jun 2, 2020 · 6 comments
Labels
enhancement New feature or request

Comments

@rafa-suagu
Copy link
Contributor

rafa-suagu commented Jun 2, 2020

I think that several files and processes should be added to make this library stronger and standard.

  • Changelog
  • Automated Relase flow
  • GitHub releases
  • GitHub templates to open issues and make PR
  • GitHub actions to build, test and lint the library
  • How to contribute section
  • Add package manager lockfile Add package manager lock file #27
  • Git commit convention and linter
  • Create https://stackblitz.com to report issues
  • ...

I can do some of these actions because I did it in other libraries.

@gilsdav
Copy link
Owner

gilsdav commented Jun 2, 2020

Thank you for your investment!

Indeed, this is something that will have to be implemented fairly quickly.

I plan to set up an automatic build via azure-devops so that it:

  • Create a version for each git tag (be careful not always in latest)
  • Fill the release note with commit messages

Do you usually use github actions, travis or other CI-CD tools? Or are you familiar with azure-devops ?

We should also add badges https://badge.fury.io

I also started to setup unit tests but I did not find enough time to continue them.

@gilsdav
Copy link
Owner

gilsdav commented Jun 10, 2020

I started with https://github.com/gilsdav/ngx-translate-router/tree/add-legacy-unit-tests
I will probably use Github actions for CI-CD part.

@rafa-suagu
Copy link
Contributor Author

Sorry @gilsdav I left this comment as a draft on the mobile app.

Sure, I used Travis and CircleCI. I never used GitHub Actions but I read about it and seems pretty simple to implement and efficient, I agree with you we can use it.

I think that with a little work I can replicate the scenario that I did on some other libraries with the following features:

  • Commitlint with Angular conventions
  • Changelog generation (from commits with Angular conventions)
  • GitHub releases
  • New package.json scripts to make the processes easier and standard
  • Add GitHub templates for issues and PR
  • Create library from scratch using the last angular-cli to avoid misconfigurations
  • ...

What do you think?

@gilsdav
Copy link
Owner

gilsdav commented Jun 11, 2020

Looks great :)

  • "GitHub releases": possible to do it only on tag creation ? (add changelog to automatically created release)
  • "New package.json scripts": we can now run "npm start", "npm test", "npm run build", what to you mean by "easier and standard" ?
  • "to avoid misconfigurations" Did you find some ?

For github action it looks simple as https://github.community/t/npm-test-jasmine/17870

@rafa-suagu
Copy link
Contributor Author

Looks great :)

  • "GitHub releases": possible to do it only on tag creation ? (add changelog to automatically created release)

For sure, the GitHub release it's a manual process that is very simple with some tools. The same for the changelog, that is only generated in the release process.

  • "New package.json scripts": we can now run "npm start", "npm test", "npm run build", what to you mean by "easier and standard" ?

Create several new scripts with watchers (tests for example), separate the two libraries, and the demo.

  • "to avoid misconfigurations" Did you find some ?

I did not check yet but I did the same operation in two other libraries and I found several differences between a library created from scratch by the last version of Angular CLI (angular.json, tsconfigs, etc...). The process it's pretty simple, just create the Angular CLI workspace, create the two libraries and the demo app and copy the actual code.

Every time that I need to update some libraries or apps I follow this process to get the new features and prevent the differences.

@gilsdav gilsdav added the enhancement New feature or request label Jul 10, 2020
@gilsdav
Copy link
Owner

gilsdav commented Sep 26, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants