yuchi / cspec-titanium-packagers-support Goto Github PK
View Code? Open in Web Editor NEWCSPEC is for adding official packaging (npm) abilities on Titanium
CSPEC is for adding official packaging (npm) abilities on Titanium
This stuff is WIP.
Hi everyone, I was starting to flesh out the actual core proposal, the underlying infrastructure. I’ve come to terms to the fact that we mostly have only to choices here: npm and jspm.
This issue is here to help me gather actual community feedback and official roadmap statements from Appcelerator®.
Is Appcelerator® going to
create their own Package
Registry APIs for pay-walled
or closed source packages?
──┬──
│ Is the CommonJS
├─╌ «Not sure…» ╌─╌ Package Registry
│ spec. ok to you?
│ ──┬──────┬──
│ «Yes» «No!»
│ │ └─────────────────┐
│ ┆ │
│ ╔══════════════════════╗ │
├────╌ «No» ╌─────╌╌ ║ Awesome! ║ │
│ ║ Let’s choose between ║ │
│ ║ npm and jspm! Go on! ║ │
│ ║ Read this issue! ║ │
│ ╚══════════════════════╝ │
│ ┆ │
│ │ │
│ «Yes» │
│ ──┴── │
└─╌ «Of course!» ╌─╌ Can you reconsider? ╌──────┘
──┬──
«No!»
│
┆
╔══════════════════════╗
║ Ok, we’re going with ║
║ jspm. Full stop. ║
╚══════════════════════╝
The reason behind this flow chart is simple: if pay-walled, closed source packages are to be downloaded through a registry that doesn’t support CommonJS Package Registry API that means that npm will not be able to download from it, and therefore download dependencies for packages that come from it.
A mixed approach is not viable, IMHO, because that would mean that some magic CLI would download not only the packages but also the packages’ dependencies, in fact duplicating npm functionality.
This is what jspm does perfectly, and supports mixed source dependencies. In other words, with jspm Appcelerator® can build their own packages infrastructure and those packages would still be able to depend on npm packages.
But using jspm comes with a cost, that I’m gonna try to highlight later.
TODO
Registries | npm | jspm |
---|---|---|
npm | ⭕️ | ⭕️¹ |
git | ⭕️ | ⭕️ |
github/bitbucket/gitlab | ⭕️ | ⭕️ |
filesystem | ⭕️ | ⭕️ |
bower | ❌ | ⭕️ |
jspm | ❌ | ⭕️ |
Mixed Registries | 💢² | ⭕️ |
Custom Registries | ❌² | ⭕️ |
Aliases | 💢³ | ⭕️ |
Winner | 👍 |
Legend:
Notes:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.