embroider-build / embroider

Compiling Ember apps into spec-compliant, modern Javascript.
MIT License
333 stars 136 forks source link

V2 addons more vulnerable to a reliable release process? Installing forks or PRs require a build step #1733

Closed johanrd closed 8 months ago

johanrd commented 8 months ago

After some time using / porting / patching different V2 addons, I have some questions regarding the flexibility in use.

With V1 addons, if you found a small improvement, you could push the improvement to a fork, make a PR, and link to your commit/PR in your app's package.json. This way, you would ensure that your local development, and possible deploys from CI used the same (fixed) addon code, until finally the PR was merged and released in the original addon.

With V2 addons, it seems you need to have it built and released before it can be installed. Simply installing from a PR / commit is now rejected with the error Missing package name:

ERR_PNPM_MISSING_PACKAGE_NAME  Can't install https://github.com/customerio/ember-animated#4f49ba73de1189eab11f4be4c2a93dc8c93efc77: Missing package name

There are at least two issues with this IMO:  1) Making "small" improvements / PRs to addons now seems more cumbersome, as the feedback loop of having your PR plug-and-play into your own app is longer.  2) Reviewing a pre-release of someone else's PR, to check if breaks some install or other dependency is no longer as simple as linking to the commit in your own app's package.json and trying it out.    How do you all deal with this? – Is there any good way to work around it? Maybe a readme I haven't read, or a process I have overlooked?    Thanks,  johan

NullVoxPopuli commented 8 months ago

Ultimately, this is the world we live in when we must compile code.

However! there is still a way to preview changes!

The addon blueprint sets up a workflow that "publishes" a package to a branch: https://github.com/embroider-build/addon-blueprint/blob/main/files/.github/workflows/push-dist.yml

when working in a fork, you could reconfigure this workflow to publish to a different branch and point your consuming apps at that.

johanrd commented 8 months ago

@NullVoxPopuli: thanks!

I've now made a PR to the docs that hopefully make this more visible.