SceneJS as a bower dependency?
Is there any up-to-date repository with sceneJS which can be fetched with bower? :>
There doesn't seem to be. It would be nice if this repo included bower support. Would the maintainer be open to a pull request on for it?
However in the mean time, adding the following to your dependencies in your bower.json file works.
"scenejs": "https://github.com/xeolabs/scenejs.git",
then in your index.html or where have you
<script src="bower_components/scenejs/api/latest/scenejs.js"></script>
and configure scenejs with something like
SceneJS.setConfigs({pluginPath: 'bower_components/scenejs/api/latest/plugins/'})
It's not ideal but it can be made to work.
@nat-n thanks! While you've been writing I have found this way to solve this problem. You can also do
bower install --save [email protected]:xeolabs/scenejs.git
but note that this will probably fetch (by now) scenejs#2.1.0
so correct command is
bower install --save [email protected]:xeolabs/scenejs.git#V3.1
which fetches current version or even this one to preserve current version for other ppl in team (and fight with this problem)
bower install --save [email protected]:xeolabs/scenejs.git#dbc228223485
The reason I asked this question here was I thought I need to recompile source, but it looks like in api/ there's up-to-date "binary".
Anyway I wanted to use post-install hook from bower to implement that from here
Thanks!
Hey all,
FWIW I have a scenejs fork that is current as of one month ago that uses semantic versioning, bower and plays nice as an AMD module (so you can use it with things like requirejs) here: https://github.com/Stonelinks/scenejs
It isn't registered on bower though, and I need to overhaul my fork as scenejs has been getting bugfixes and improvements that I stopped following since they broke things for me. I haven't had time to fix them yet.
Two things for whoever maintains the bower dependency:
The scenejs repo is gigantic
Currently when I use bower to download scenejs...
ld@dev0:~/test$ bower install [email protected]:xeolabs/scenejs.git#dbc228223485
-----------------------------------------
Update available: 1.3.8 (current: 1.3.7)
Run npm update -g bower to update
-----------------------------------------
bower scenejs#dbc228223485 not-cached [email protected]:xeolabs/scenejs.git#dbc228223485
bower scenejs#dbc228223485 resolve [email protected]:xeolabs/scenejs.git#dbc228223485
bower scenejs#dbc228223485 checkout dbc228223485
bower scenejs#dbc228223485 invalid-meta scenejs is missing "main" entry in bower.json
bower scenejs#dbc228223485 invalid-meta scenejs is missing "ignore" entry in bower.json
bower scenejs#dbc228223485 resolved [email protected]:xeolabs/scenejs.git#dbc2282234
bower scenejs#dbc228223485 install scenejs#dbc2282234
scenejs#dbc2282234 bower_components/scenejs
ld@dev0:~/test$ du -hs bower_components/scenejs
172M bower_components/scenejs
... it is a whopping 172M, in my opinion way too big if your app ships with any amount of regularity. Whoever maintains the bower module should use the ignore array (see here) in bower.json. Most libraries I use (even really big ones) do this and are typically 2-5 megabytes on average.
Semantic versioning
Semver is good for a lot of reasons, but some people don't follow it which is fine. However, developers who use tools like bower (and npm, and rubygems, and pip to an extent) expect it. It is pretty much a de facto versioning standard at this point.
Additionally, some awesome features of those tools (like automatic updating) don't work unless you follow semver, and a few of their respective package registries won't let you register unless you use semver.
I strongly advise whoever maintains the bower module to start following semantic versioning. scenejs itself would benefit from following it too.
Current scenejs doesn't seem to have a development / release cycle as far as I can tell. All commits happen on the "V3.1" branch. This is bad because:
- Versions of a library should be snapshots in time and never change (IE a git tag). "V3.1" is a git branch that keeps changing every time a commit is made, so it isn't clear what "V3.1" actually is.
- It doesn't follow semver.
- There are other branches like "v3.0", "v4.0", etc. Not clear if those are releases or not.
- "master" hasn't been touched in three years.
This is my opinion, but since scenejs is quite a large library what should happen is:
- "master" is unstable and where all development happens and feature branches get merged in
- "stable" points is the latest stable version, only pulls from master
- Periodically make releases by tagging "stable" as necessary and follow semver when doing them
This is obviously @xeolabs decision but in lieu of following something like that, whoever maintains the bower module should at least make semver tags that attempt to follow API changes with scenejs as it grows.
I'd be okay with being this person so long as I had @xeolabs blessing :smile:
Looking forward to your thoughts!