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

Prepare repo for open sourcing #55

Closed
mturoci opened this issue Aug 24, 2020 · 5 comments · Fixed by #92
Closed

Prepare repo for open sourcing #55

mturoci opened this issue Aug 24, 2020 · 5 comments · Fixed by #92
Assignees
Labels
devx Related to developer experience docs Documentation feature Feature request test Related to testing
Milestone

Comments

@mturoci
Copy link
Collaborator

mturoci commented Aug 24, 2020

A few things that in my opinion should be done before making this repo public:

  • Setup a CI pipeline. Despite the fact we use company-wise Jenkins, it is most of the time busy. I would prefer to have something always ready so we can run our tests on each PR. I have found CI providers with completely free tier for public repos - e.g. Travis CI (there can be others suitable as well of course).
  • Contribution / developer guide.
  • Setup git hooks to run tests related to staged files on commit - enforcing at least some unit tests to run before pushing.
  • Custom tslint rules to keep consistency since the codebase has a pretty specific style e.g. someVariableB for boxed vars, using const just once and separate variables with , instead of multiple lines starting with const etc.
  • IDE support - common editorconfig, vs-code plugin suggestions for this project etc.

@lo5 @geomodular Let's use this issue as a starting point for a discussion.

@mturoci mturoci added feature Feature request devx Related to developer experience docs Documentation test Related to testing labels Aug 24, 2020
@mturoci mturoci self-assigned this Aug 25, 2020
@mturoci
Copy link
Collaborator Author

mturoci commented Aug 25, 2020

In addition to points above, since tslint is deprecated, I am going to replace it with typescript-eslint as suggested in the official docs.

@mturoci
Copy link
Collaborator Author

mturoci commented Aug 27, 2020

Other possible improvements regarding git hooks:

  • Consistent commit message format (e.g. conventional commits).
  • Implement git hooks for the whole repo and add support for linting staged files other than JS - (.py, .md, .go).

@lo5 @geomodular

@lo5
Copy link
Member

lo5 commented Aug 27, 2020

Agree @mturoci - I'm fine with conventional commits as long as the [optional scope] part is not enforced.

@mturoci
Copy link
Collaborator Author

mturoci commented Aug 31, 2020

In order to enforce git hooks for each developer I use husky in combination with lint-staged for linting.

It works fine for ui part of repo since I have included it in package.json there. However, if we want to use it for the whole repo, I would have to create a package.json and corresponding node_modules in project root and set it all there.
Despite the fact I think project root should not be polluted with nodejs or any other language specific files other than configs, I could not find any other way around it.

Problem no. 2 is that for commit linting and markdown linting there exist npm packages, go has native linter as part of an SDK, but the problem is python one. As far as I discovered, python requires pip installing the linter locally. This would introduce requirements.txt in project root. @lo5 any idea as someone who has much broader python experience? Please also read the previous section.

mturoci added a commit that referenced this issue Sep 2, 2020
mturoci added a commit that referenced this issue Sep 2, 2020
mturoci added a commit that referenced this issue Sep 8, 2020
@mturoci
Copy link
Collaborator Author

mturoci commented Sep 8, 2020

Adding .nvmrc with current LTS Node version (via @mnezh)

mturoci added a commit that referenced this issue Sep 8, 2020
mturoci added a commit that referenced this issue Sep 8, 2020
mturoci added a commit that referenced this issue Sep 8, 2020
mturoci added a commit that referenced this issue Sep 9, 2020
mturoci added a commit that referenced this issue Sep 9, 2020
mturoci added a commit that referenced this issue Sep 10, 2020
mturoci added a commit that referenced this issue Sep 10, 2020
@lo5 lo5 added this to the 2020 Q4 milestone Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
mturoci added a commit that referenced this issue Sep 11, 2020
@lo5 lo5 closed this as completed in #92 Sep 11, 2020
lo5 pushed a commit that referenced this issue Sep 11, 2020
* feat: Deprecated TSlint exchanged for ESlint #55

* fix: Webpack dev server not picking up eslint #55

* feat: Custom ESLint rule for baxed variables #55

* chore: Babel config moved to separate file from package.json #55

* chore: Jest config moved to separate file from package.json #55

* feat: Git hooks - TS compilation, eslint check, related unit tests #55

* chore: VSCode workspace recommended extensions #55

* style: Custom Eslint rule for data-test attributes on component wrappers #55

* fix: Data-test linter #55

* chore: Eslint rule for card names #55

* docs: Contributing.md #55

* docs: CODE_OF_CONDUCT.md #55

* feat: Go lint on precommit #55

* chore: .nvmrc #55

* feat: commitlint #55

* feat: markdownlint #55

* feat: hook for appending issue number to commit msg #55

* fix: make generate #55

* feat: pylint #55

* chore: use /py venv for pylint instead of root one #55

* chore: revert qd.ts rearrangement and turn off corresponding lint rule #55

* chore: remove extra semicolons #55

* chore: syncing package-lock #55

* docs: code review
lo5 added a commit that referenced this issue Sep 17, 2020
* feat: flake8 linter instead of pylint

* Remove ignore list; set line length to 120

Co-authored-by: Prithvi Prabhu <prithvi@h2o.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
devx Related to developer experience docs Documentation feature Feature request test Related to testing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants