-
Notifications
You must be signed in to change notification settings - Fork 328
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
Elyra project consistency among all repositories #1532
Comments
I agree that consistency across our Elyra repos is a good thing, but I don’t think we can ignore the notion of the
Project structureFor the most part, I think project structure is fairly consistent ( Script runningAgain Canvas:
Everything else:
ProposalI think we should follow the pattern of having a We should have a single script runner per project (could be If the project is 100% js it MUST be npm scripts BuildThe actual build is very dependent on the project so there’s not much to say here except that a project should be able to be built by just running
Release processI’m not super aware of the current release process, but it seems like Luciano makes 3 commits directly to master to:
I’m personally not a huge fan of pushing the version bumps and changelog directly to master. I think that we should move to opening a release PR that contains the changelog and version bumps (anyone can open this PR). Once approved, either ci handles publishing and tagging the release or we can continue to have someone doing it manually (I’m fine with either). I think the main point here is that the changelog should be reviewed. Lint tools and configuration
|
I am not sure I understood this properly but assuming we have a multi-project repo, an
Yes, based on the above, something like
The changelog is independent of the release, and it's pretty much traversing the git history to build a list of changes since the last release. The other steps, are pretty much done by the release script by running two commands:
Agree, is there an easy way to maintain these type of details in sync across multiple repositories? |
I personally don't think there's much of a learning curve from the script running perspective. Running Given that JupyterLab uses
A pattern I've also seen is creating an
I'm not sure I understand what you mean by "independent of the release". It seems like most releases look like these three commits:
What I'm saying is the When we are ready for release someone will run the "prepare" scripts, which will bump versions and generate a changelog "template". The template is just a git log with a space for highlights. Here is an example template from running
This would be filled out and manually prepended to the changelog. They would then open a PR, it would be reviewed and as soon as it's merged it should be built/published/tagged
Yes, for eslint I can create an eslint config npm package for us if you want |
That's the thing, the script runner standardized the commands across all repositories, independent of what |
|
👍
I agree, I'm fine with 100% script generated changes going straight to master. However, I think the only fully script generated changes we are talking about here would be the version bumps, which I think should be a part of the "release PR". I would say I'm flexible here, but I can't really think of a way where we could have a changelog PR without having the version bumps part of it.
Right now, we can internally announce, "hey, master is ready for a release go test it out", but I think if we have a release PR, it gives community members a chance to be a part of the process |
I really don't think having two script runners is an issue as long as the usage is consistent across project types. I don't think someone with a Python background will have trouble running |
I like the idea of a "release PR". FWIW, there's growing traction with github-activity which produces super nice changelogs that can then be adjusted (although I just read Nick's comment above showing the I also wouldn't say On a personal level, I like |
❤️ yes, agree 100% I'm okay if we decide to use |
@lresende what if we use a makefile and then in the npm scripts only allow using the make commands? like: "scripts": {
"build": "make build",
"test": "make test"
} |
Not sure I understand... looks more like infinite loop... |
the npm scripts would just be an alias for the make targets. The makefile wouldn't use any of these npm scrtips |
the exception would be that the |
When we look into other projects, JupyterLab being one close to us, we see that they are using a consistent set of tools across all repositories and/or subprojects.
Some examples are:
The benefit of being consistent and adopting a set of standard tools and processes across all repositories is that a new contributor will feel much more comfortable when moving from different components in the project, as he's already familiar with all tools and processes.
On the other hand, people might say that components might be using different languages or other things, and I believe in this case we can still wrap the
native way
to provide the same consistent set of tools across the different components (e.g. a make command wrapping the npm commands).I would like to use this issue to gather feedback from the other community members and make sure we have a consensus on this topic and them we start enumerating what needs to be changed.
The text was updated successfully, but these errors were encountered: