-
Notifications
You must be signed in to change notification settings - Fork 316
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
feature request: index.json manifest for releases #686
Comments
Would something like this be sufficient? [
{
"node": "0.10.40",
"jxcore": "0.3.0.7",
"v8": "3.14.5.9",
"sm": 0,
"embedded": { "sqlite": "3.8.4.3" },
"ares": "1.9.0-DEV",
"uv": "0.10.36",
"zlib": "1.2.3",
"modules": "11",
"openssl": "1.0.1p",
"source" : {
"zip" : "https://github.com/jxcore/jxcore/archive/v0.3.0.7.zip",
"tar" : "https://github.com/jxcore/jxcore/archive/v0.3.0.7.tar.gz"
},
"dist" : {
"url" : "https://jxcore.s3.amazonaws.com/0307/",
"platforms" : [
"jx_ub32sm.zip", "jx_iosFATsm.zip",
// etc
]
}
}
] |
Yeah! That's nearly perfect. The only changes I would make, are to include the checksums. nodejs (and iojs) publish all their distributable packages under a directory per release (as you do). They then include a You could certainly copy their lead with a checksum file in the release directory. Though you could also just include them in the main manifest. Perhaps the "dist": {
"url": "https://jxcore.s3.amazonaws.com/0307/",
"platforms": {
"ubuntu-x86": {
"file": "jx_ub32sm.zip",
"sha256": "1723abf50ee9b2b2209af06374523ae657c5562166bdc44b7b8d32801484c572",
"sha1": "edca2a0c728388247db251c4a45159863b2d1314"
},
//etc
}
} So The |
@jasonkarns I've prepared a full-sample file for you. For now it is a temporary location: https://github.com/ktrzeciaknubisa/jxcore-issues/blob/master/index.json . I gave up on your proposal to give a name to the platform: "platforms": {
"ubuntu-x86": { because I would need to add an engine to it ("ubuntu-x86-v8", "ubuntu-x86-sm") so you would still need to parse it. However if you still want this way, I can do it. Also we have some binaries suitable for multiple platforms, e.g. "RH/Centos/Fedora". Would you like me to split them? |
Ah, right, good point. It doesn't make a difference to me on that; either way is fine. Having the properties split out is probably best long term anyway.
Short answer, no, I don't think that's necessary. node-build derives the host platform (for the most part) from binary redhat-x64 "https://jxcore.s3.amazonaws.com/0307/jx_rh64v8.zip#929d1266a5979f30eff590c276f0e18cefbd0771f4dd47eaa7294ebee5b0335c" So this is all 👍 from me! Since node-build is (for now, at least) the only consumer of this file, would you mind keeping this issue open and not officially publishing this file until we can get our scraper to consume it? That way if we run into any issues, we can address them on our side or your side as is appropriate? I'll open an issue on node-build to update the scraper. |
First couple things I've noticed:
|
Thanks @jasonkarns
I also didn't respond to your previous question:
Sure, no problem :) |
Fine to leave as is. Does that mean future releases will comply with semver? The unfortunate side effect of those particular releases not following semver means that the scraper will generate invalid build definitions for them. I can blacklist |
I guess it's worth mentioning, then, that the existing build definitions for those releases in node-build do not have the Beta- prefix. See the jxcore releases at the bottom of: https://github.com/OiNutter/node-build/tree/master/share/node-build |
I cannot say "yes" at the moment. This is a decision for our team to make.
I think you may just remove "Beta" string and things will be fine?
Yeap, that's what i say. |
Yeah, I guess. I would have like to not have that in the scraper in case future versions have a similar prefix. Another note: The dists for FreeBSD are identical for FreeBSD 9 and FreeBSD 10. The only differentiator is in the filename/url (jx_bsd9 vs jx_bsd10). As the version of the OS is technically a different platform, would you be opposed to using |
I don't think we're going to follow that pattern anymore.
Yes, exactly. I'll add the numbers too. |
Oh, another thing that I need (one after the other :) )... I need info of which npmjx should go with each release. Something like this would be sufficient (you could add the npm version numbers if you like, but all I need is the url and sha). "npm": {
"url": "https://s3.amazonaws.com/nodejx/npmjx307.tar.gz",
"sha256": "7b99397f17f5fdb592842ccd62e25806b2a05ae9997c4508b47412f194e8ba6e"
} |
I now have a working scraper that's missing only the items already mentioned:
|
@jasonkarns 1st and 3rd are done, please recheck |
Sweet! 1 and 3 check out |
@jasonkarns The 2nd is also done now. |
nice! just updated the scraper, looks good! Unless there are any more changes you expect to see, I'm ready to ship the scraper! We just need to know the official URL where it will be hosted! (hopefully under https, since we need to be able to trust the urls and checksums contained therein) |
I've located it here: https://jxcore.s3.amazonaws.com/releases.json |
Merged!! nodenv/node-build-update-defs#4 Thanks! |
Both nodejs.org and iojs.org maintain an index.json file from their respective download pages. The json file is essentially a manifest of paths and checksums for all their releases. This is a lovely file that makes it possible to easily scrape their downloads page (or rather, just the manifest) for new releases.
https://nodejs.org/dist/index.json
It would be awesome if jxcore had a similar manifest file on its download page.
The manifest file could have, for each jxcore version, a listing of the names for the source tarball, compiled tarballs for each platform, and version information about which v8, spidermonkey, npmjx, node, and npm are bundled.
The carrot for this particular feature, is that the node-build scraper, which currently adds new builds of iojs and node to its definitions by scraping their respective index.json files, would be able to be run against jxcore. This would keep jxcore's definitions up to date without the definitions needing to be created manually (which is simple but tiresome when one accounts for including the package checksums).
The text was updated successfully, but these errors were encountered: