-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Consider moving wp-env project to own repository #34325
Comments
This issues should all be labelled - https://github.com/WordPress/gutenberg/issues?q=is%3Aopen+is%3Aissue+label%3A%22%5BPackage%5D+Env%22. Same with PRs. If there's any missing labels, they can be labelled. |
Issue labels are indeed useful but it still seems like a reasonable idea for the project to have its own repository. 😃 There is a lot of unrelated activity in this repository such as running the full Gutenberg test suite on every pull request, even when it just relates to wp-env. Also, developers have to check out all of the Gutenberg code when wanting to only make a change to wp-env. |
|
@gziolo, in what way(s) would the NPM package publication workflow be affected by having a separate project for |
Relatedly, a single-line pull request for I still believe that moving |
I asked more folks on WordPress Slack to leave their feedback (link requires registration at https://make.wordpress.org/chat/): https://wordpress.slack.com/archives/C02QB2JS7/p1631001940283000 |
I'm on the opinion that a separate repository is just going to require more maintenance work for no real gains. The setup to publish npm is already in place here, there are already folks working and following this repo. A separate repo would require building new workflows, a new team dynamic that I don't think is worth it personally. I'm also of the opinion that all WP npm packages should just be in this repository. The fact that e2e tests from Gutenberg can block PRs for wp-env look like a good thing to me, they're validating that wp-env changes work properly as well. Intermittent failures are an issue of course but it's a constant priority for us. |
The same arguments here about running tests and finding issues could be made for other packages, not just https://github.com/WordPress/gutenberg is the de facto monorepo for all WordPress JavaScript packages (replacing https://github.com/WordPress/packages, if you remember that one). There are indeed benefits to keeping all these things in one place, from contributor onboarding to maintenance to publishing. But you're posing an interesting question here: At which point does an individual package (outgrow the monorepo and) warrant its own home? Off the top of my head, I could think of a couple of indicators:
Neither of the above is really the case for |
Just voicing my agreement with comments that have already eloquently expressed by @gziolo, @youknowriad and @swissspidy. In particular, I appreciate the framing Pascal has put around identifying some indicators where a project might be moved into its own repository and I agree that |
I agree with Pascal's point regarding the indicators. Currently Moving also might cause a little confusion. As mentioned above, this is the de facto monorepo for all |
I like that it allows for Gutenberg contributors to have it all in one package.
|
Thanks, @bph, for pointing out that this is a duplicate of issue #32584. I may not have searched for duplicate issue(s) before creating this one, although I usually do. I'm not sure how to merge the conversations, as the previous issue seems to have garnered more agreement (in terms of thumbs up). That said, I would like to explore further a few of the points raised so far.
The test cases that run on this repository seem mainly Gutenberg-related. Which of the tests validate that
I don't see much in the @wordpress/env documentation that would seem to require rewriting. Is there some other source of documentation I am missing? For example, perhaps some parts managing packages document would need to be included in a separate
I also agree with this framing. However, having a separate repository doesn't imply different forums or sweeping changes to the documentation, as suggested.
I agree the
What are some new workflows that would be needed? Relatedly, what are some existing workflows that might require modification?
Thanks for the clarification about the onboarding, maintenance, and publishing. What would be some maintenance and onboarding costs of maintaining the
I'm concerned with relevancy and clarity. For example, when I came to this repository to change the
In addition to WP npm and Gutenberg packages, the Repository "clutter" is particularly undesirable when wanting to contribute to a specific environment tool ( |
Great catch @bph, I closed the other issue and here is the comment from @Clorith:
|
I will voice my desire to see this separated out as well. I've been trying to use |
Same opinion as @timnolte ! wp-env is such a great tool! :) |
It is quite an encumbrance to install all of the Gutenberg project dependencies and any other E.g. the dependencies/scripts to lint/format JS are defined in the root of the Gutenberg project instead of the |
I'm pretty much in total agreement with @WraithKenny if the individual packages aren't meant for anyone outside of the Gutenberg project then make that explicit, or better yet publish them in a private repo. It does seem rather ridiculous that there is so much in the |
The fact that all these packages are dependent on each other and evolve together most time is a great indication that the mono repo is the best path forward. You shouldn't be forced to have multiple PRs in parallel in multiple repos to make a change, or do a waterfall kind of flow. The whole open source community is evolving in this direction for these reasons. Smaller PRs for specific packages exist but more often, a PR touches multiple packages at the same time. |
Really? I see a number of advantages that have already been mentioned here. I can understand that you might not agree with the advantages that have been pointed out but that doesn't mean none have been brought up :)
That's a fairly blanket statement that I'd like to provide a counterpoint from observation. I'm aware of numerous plugins and themes that utilize the packages as they are currently distributed. Just a few at the top of my mind at the moment: WooCommerce, WooCommerce Blocks, Calypso, Jetpack, Yoast SEO, Event Espresso. The fact that the Gutenberg project isn't directly pulling these packages from NPM isn't something I'd consider a hindrance. In fact, the opposite is true, I think it allows the project to react more quickly to issues (for reasons others have already pointed out in this thread) that are reported by plugin and theme authors using the packages. Historically, WordPress has always been a monorepo in some way as far as dev tooling goes (PHPUnit tests, JS test suites, Grunt build tool, the entire "develop" WP structure is a testament to that).
I think there's some truth in this observation but more related to the delay in package updates when in the midst of a WordPress release cycle. This is already a known thing and something that will be iterated on. Outside of the WordPress release cycle, it's been my experience that the package updates are generally pretty frequent. On the other hand, there are many efficiencies that are gained from working in a mono repo (through experience in trying both approaches) that effectively means momentum is kept in improving the packages. Efficiencies that would be lost in splitting everything out to its own repository. I wonder if it'd be worthwhile to capture as a list the problems/friction contributing/consuming packages in the Gutenberg repo both to outline the tradeoffs being made currently and acknowledge that for some users this is a hindrance to making contributions. As a first step, I think it's good to have that articulated somewhere. This then can be used as inspiration for exploring how the various trade-offs might be addressed even without splitting out to a mono-repo? |
@nerrad I think the problem is that |
I for one would actually love for Gutenberg and core to merge into a single mono repository. The reason it's not is that we don't want to lose all the github flavor and tooling that comes with it. Merging Gutenberg and Core doesn't prevent Gutenberg to ship a plugin (or an alpha version of WordPress) faster than Core, we're just dealing with the difficulty to more Core to GitHub or similar. |
Why am I not seeing the recent posts here from @WraithKenny I know they posted twice today as I got the email notifications. |
One thing I would say is this discussion is quite long form, and a lot of the points being made are hard to digest (requires a lot of reading). The description doesn't have a summary of the relevant pain points, so it's hard to actually understand where we can make improvements. I think it's worth looking at the reasons for wanting to move to a separate repo and see whether any of them can be addressed or at least improved while keeping the project as part of the monorepo. For example, it was mentioned that managing issues is difficult. If there are motivated contributors, then using a project board or tracking issue are effective ways to manage a project. If building the entire project is too slow, then we should look at options for improving that (I understand @kevin940726 @youknowriad already have been working speeding up the build), or other ideas like being able to run
I'm not sure why. I also saw a notification, but the message is not here. I will mention that the constant thumbs down on every post they disagree with is really very annoying, and it doesn't constitute a positive or productive discussion. I would encourage you not to do this, it comes across as unfriendly. |
Basically, all I'm hearing is that the idea of moving this package, or any other NPM package in this monorepo, has been permanently turned down by powers in control. You have effectively shutdown the conversation. You might as well close this issue altogether because you have no intention of ever considering moving out of this crazy unmaintainable monorepo. At this point I think I have my answer and will no longer be investing any more of my time to improve this package. I'd rather be involved in contributing where people are at least willing to have an actual discussion about instead of just making it seem that the monorepo is the only right answer. I'm in complete agreement with @WraithKenny and unless someone can actually make a legitimate case like they have for why breaking any of these packages off to their own repos is going to hurt anything I'm done listening to the one-sided enforcement of the maintainers. Improving the monorepo doesn't improve the entire process as @WraithKenny so clearly articulated. |
That's quite a strong reaction. Look at it on the other hand. A small group of contributors are only willing to discuss the idea of moving the package out of the monorepo, and unwilling to consider any other solution. This approach to diplomacy will only end in a stalemate. Nothing actually productive will come out of it. The issue I'm seeing is that you have identified problems but are only willing to consider a single solution and no other options. I don't really see how you expect such inflexibility to receive a positive response. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Though I know this conversation has mostly come to a close, I did want to answer a couple of questions that came up. I also still think it's important to consider monorepo solutions to some of the problems which could (in theory) be solved by a separate repository.
Since Gutenberg is a complex WordPress plugin, it relies heavily on the underlying WordPress environment. If the underlying WordPress environment breaks through a change in Additionally, the lint checks will lint wp-env code, and the unit tests will run the wp-env unit tests. So I do think there are monorepo solutions to many of the other problems:
I also wonder if the issue with how quickly contributions are accepted is more related to the number of people maintaining |
Agree with your points Noah. I think it's time to close this issue given this is clearly not going to happen, but also as the conversation became toxic and aggressive. I did start one new pull request to help improve things based on one of the (now deleted) comments - #38122. I'm happy to also work on other ways to improve the contributing experience. Lets focus on making individual issues/PRs though for those things. |
What problem does this address?
The
wp-env
utility library is currently contained within the Gutenberg project. Unfortunately, this makes it a bit difficult to find the project files and related issues/pull requests amidst the bustling Gutenberg development activity.What is your proposed solution?
Move the
wp-env
project to its own repository, so code, issues, and pull requests are easier to locate/organize.The text was updated successfully, but these errors were encountered: