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
Split coffeescript package #8960
Split coffeescript package #8960
Conversation
49736fd
to
d953bb5
Compare
I like easy fixes 😄 Speaking of easy fixes (or maybe not), the CI build fails because Blaze fails to build because spacebars-compiler has a version restriction of
Which begs the question, how did this not fail for Locally I fixed this by just removing the version constraint in that file, but as it’s in a separate repo that would require a separate PR; and I’m not sure that’s how you’d want to solve it anyway. |
These version constraints are unnecessary, since `./meteor test-packages` runs from a checkout, and all of the depended-on packages can be found in packages, packages/non-core, or packages/non-core/blaze/packages. This should fix the problem noted by @GeoffreyBooth in this comment: meteor/meteor#8960 (comment)
Wondering if this will make headway into adding Coffeescript 2 compatibility to meteor or if there is a known workaround? |
That’s where I’m going with this 😄 I think the I don’t know how or if a core package can depend on a non-core package and have the tests all work, but hopefully @benjamn’s PRs will make that happen? 😄 |
@GeoffreyBooth Could you try rebasing against |
487ec7f
to
4114675
Compare
@benjamn Done. Let me know when/if I should move the |
@GeoffreyBooth I think that's possible now! Still waiting on a fix for the |
These version constraints are unnecessary, since `./meteor test-packages` runs from a checkout, and all of the depended-on packages can be found in packages, packages/non-core, or packages/non-core/blaze/packages. This should fix the problem noted by @GeoffreyBooth in this comment: meteor/meteor#8960 (comment)
…#267) These version constraints are unnecessary, since `./meteor test-packages` runs from a checkout, and all of the depended-on packages can be found in packages, packages/non-core, or packages/non-core/blaze/packages. This should fix the problem noted by @GeoffreyBooth in this comment: meteor/meteor#8960 (comment)
ea7f0ec
to
b1c3ec4
Compare
Hey @GeoffreyBooth, thanks for jumping back into this! I rebased these changes just now, and pushed everything except the last commit to |
I'm going to publish another 1.5.2 beta with the |
@benjamn I discovered that other packages (like Mocha I think it was) also depend on |
What about In my view, it's acceptable for the Meteor package version to diverge slightly from the npm package version, so |
No, it’s that the The |
The idea is that
|
…e, as they depend on core modules like CachingCompiler; but leave coffeescript-compiler in non-core, so it can update more frequently as NPM coffeescript gets updated
b1c3ec4
to
1ba389b
Compare
Thanks for rebasing! I would have thought that If that sounds right to you, I'd like to keep everything in |
Oh hey, I’m not sure this was ready to be merged just yet. The code that was merged still had version 10, and So about that: currently If |
I used this branch to try to run tests in another project, and got this error:
So I guess this is a bug in the constraint resolver? This error went away with the version set to 1.999.1. |
Sorry about the premature merge! I do think that Assuming If we update Note: a version constraint like It's too bad that pull requests can't be reopened after they've been merged. Could you perhaps open a new PR that moves |
One more thought before I go to bed (and sorry again for making this all more complicated than it needed to be): if all three Good night! |
I’m happy to open a new PR once we figure out what we’re doing. If we put all the CoffeeScript packages in non-core, and I constrain the version of It’s unfortunate that the constraint resolver doesn’t behave in a “>=” way by default. Looking at the |
I hear what you're saying, but I'm still in favor of Considering the alternative, if we put If If we do bump the major or minor version of (Less important details below; no need to keep reading if you're already convinced… 😅 )
The rules about this have changed over time, so it's worth clarifying. In short, the application developer does have some wiggle room with the More specifically, if Here's the history of how core package constraints have worked:
Although core packages will be constrained more tightly in Meteor 1.5.2, the I think that's pretty close to the |
@GeoffreyBooth and I are still deciding exactly what to do with the coffeescript package in #8960, but in the meantime I need to publish another 1.6 beta, and I'd like to avoid publishing a beta version of coffeescript along with it.
Okay, how about this:
So this way average users don’t need to know about |
…e. (meteor#8960) They depend on core packages like caching-compiler, but coffeescript-compiler can remain in non-core, so it can update more frequently as npm coffeescript gets updated.
That sounds like it will work! Should |
Yes, sorry I forgot to mention that. See #9018. |
Originally when I was looking into implementing this, I was trying to use |
This will make it easier to merge devel into release-1.5.2, since devel now contains the final verison of these changes, as implemented by @GeoffreyBooth in #9018. Revert "Bump coffeescript package version to 1.13.0." This reverts commit d727ad0. Revert "Move coffeescript and coffeescript-test-helper packages back into core. (#8960)" This reverts commit eb3c7dd. Revert "Split coffeescript package into coffeescript / coffeescript-compiler." This reverts commit 8344cbf. Revert "Instructions for how to test the coffeescript package" This reverts commit 491cbc3.
This PR splits the
coffeescript
package into two, mimicking thebabel-compiler
/ecmascript
split:coffeescript-compiler
, likebabel-compiler
, a support package that isolates the logic for compiling CoffeeScript files, including passing through Babel and generating source maps;coffeescript
, the build plugin that registers itself as the compiler for CoffeeScript files, and extendsCachingCompiler
.This was suggested in a comment, in a discussion about whether or not to move
coffeescript
intopackages/non-core
. The result of that discussion was to move intonon-core
, but unfortunately for this refactor I needed to move these two packages up intopackages
. When bothcoffeescript-compiler
andcoffeescript
were inpackages/non-core
, they couldn’t see each other (#8962). Also, the Meteor test suite ignores packages inpackages/non-core
, which isn’t good (#8961). These are separate issues related topackages/non-core
, not really related to these packages, so I don’t think they need to be resolved in order to accept this PR. Oncenon-core
works the way we want it to, we should move thecoffeescript-compiler
package back in there, as it’s the package pinned to the version of the NPMcoffeescript
module. The regularcoffeescript
package is now more closely tied tocaching-compiler
, so it might make more sense to keep it as a core package.I did this so that I could refactor the
vue-coffee
package, which does its own compilation of CoffeeScript code, to use the code contained in this newcoffeescript-compiler
package rather than a fork.