-
-
Notifications
You must be signed in to change notification settings - Fork 79k
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
Meteor integration #15376
Meteor integration #15376
Conversation
command: [ | ||
// Make sure Meteor is installed, per https://meteor.com/install. | ||
// The curl'ed script is safe; takes 2 minutes to read source & check. | ||
'type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Considering that only the Core Team would ever run this task, I think we can just omit this and instead put a comment about it requiring meteor to be installed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moving to .travis.yml
so CI tests can include the Meteor integration.
// Full distribution task. | ||
grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']); | ||
grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js', 'meteor-publish']); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dist
is meant for use by regular Bootstrap users, so publishing shouldn't be part of this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed. Where should be the meteorPublish
task be included?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nowhere. But we have a checklist that defines the steps in our release process. We would add grunt meteorPublish
to that checklist if this PR gets accepted.
I'd rather move the top-level meteor folder to |
}, | ||
meteorCleanup: { | ||
// remove build files and package.js | ||
command: 'rm -rf .build.* versions.json package.js' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use Grunt's clean
task instead?
@dandv So, you mentioned:
Then, what exactly are the benefits of making Bootstrap a "native" Meteor package? |
@cvrebert: thanks for the inline comments; I'll address each. Regarding the benefits of pass-through package installation: we don't have that yet - it is just a proposal under discussion. When/if this happens, the wrapper would be very thin, automatic, and by necessity, too generic. Some of the main advantages of an integration "straight from the authors" include Meteor-specific customizations (e.g. automatically initializing widgets in newly rendered templates), package-specific tests (such as those included in this PR), and precise control over what goes in the package (we had for example a problem with naive wrappers of Font Awesome that included blindly the source font files). |
@hnrch02 - moved |
|
# Install meteor | ||
- curl https://install.meteor.com | /bin/sh | ||
# Install spacejam, Meteor's CI helper | ||
- npm install -g spacejam |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, this might screw with our dependency caching. Will have to investigate a bit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems unnecessary since you're already adding spacejam
to devDependencies
in package.json
The two errored builds are because |
Pull request builds by folks outside the Bootstrap Core Team don't use any cache. |
|
||
# Issues | ||
|
||
If you encounter a Meteor-related issue while using this package, please CC @dandv when you file it in this repo. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not clear what "this repo" refers to.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sending a revamped README in a bit.
Since you don't seem to be trying to include the |
Correct - there's ongoing discussion. |
Okay, so should the ability to use |
Well, I'm personally basically out of nitpicks, but I will echo several other of the first-party package maintainers you've contacted in saying that Meteor/Atmosphere is by far the most-burdensome-to-support package manager I've seen thus far. I encourage y'all to highly prioritize external bower/npm/etc. package support (MeteorCommunity/discussions#1). |
Dang, this is kind of a lot of stuff to add just for one (more) package manager. My hesitation here is adding this functionality into the project and having no one who actively maintains it on our team. I'm unsure if anyone on @twbs/team has some Meteor experience, but so far it's never come up. Any thoughts on balancing the code additions with that? |
Well, the bulk of the Meteor support are the tests, which I thought would make for a solid integration. Out of the 10 changed files, five deal with tests (two sources, then one new dep in I could trim that to just the two package definition files and the Grunt tasks if we want to be extra lean. The Meteor <-> Bootstrap integration is very light by comparison with, say, Sortable. Essentially, the package only lists the .CSS, the .JS, and the Glyphicon fonts in a manifest file. The In any case, I'll be active in the open source community for the foreseeable future and will be happy to jump in whenever the Meteor integration needs attention. |
@twbs/team Pinging for more opinions. We should try to come to a decision on this. |
@dandv Based on https://groups.google.com/forum/m/#!topic/meteor-core/DPd6XK4Ow-w , sounds like the Meteor devs are against non-native-Meteor Atmosphere packages, like this would be? |
@cvrebert The Nov 2014 Google Groups thread is rather old; the current consensus is at percolatestudio/atmosphere#297 (comment). TL;DR - if this PR isn't accepted, it's no big deal; we'll host the integration in the MeteorPackaging repo. Meteor are for Meteor integrations on Atmosphere for non-native-Meteor (i.e. 3rd party) packages like Bootstrap. That's how we have 3000+ packages; only a small percentage of those are Meteor native ones, and most are wrappers (unfortunately often multiple poorly updates wrappers dating from the days before the integration efforts). |
I think I'm a pass on this unfortunately. It's not something most of us on the Bootstrap team use at this time and as we're trying to keep things super lightweight on our end (especially as we head into v4), this would be a bit of a step in the opposite direction. I understand the usefulness though, and deeply appreciate your level of commitment to this effort. That goes a long way in my book :). Let us know how we can help put some attention from others on this. We have the Expo resources page, but if this is a separate package, feel free to ask for a tweet or two about this down the line. <3 |
Hey guys,
This PR lets you publish Bootstrap to Atmosphere, the package repository for Meteor.js. Between Meteor's 21k stars and Bootstrap's 75k, we hope to get even more users to both projects.
I've included the Meteor publishing task in Grunt's
dist
task, and have already published the current version, so there's nothing to do for now.Best regards,
Dan & a bunch of Meteor 3rd party library maintainers