Comments (25)
I don't know why this is happening and I don't know what version of node you were targeting with [email protected], but you NEED to push a 1.5.2 that is compatible with the older version that works with 0.12 and you NEED to release the current 1.5.1 as a 2.x.x release... it's the only way not to completely disable anyone (like me) who is on [email protected] and node 0.12.4
from typeforce.
Also, it was a mistake to have bitcoinjs-lib have this "typeforce": "^1.0.0" dependency! Please use explicit versions in the future so as to not cause these kinds of breaking changes.
from typeforce.
I agree it would be safer if BitcoinJS limits the requirement to 1.3.* (and 1.5.* once this issue is figured out). That's already a ticket: bitcoinjs/bitcoinjs-lib#494
from typeforce.
+1 waiting for 1.5.2
from typeforce.
The problem is that bitcoinjs-lib 1.5.8 is already published, so there's no going back and fixing it now...
from typeforce.
so there's no going back and fixing it now
I'm not sure if I understand; a new release of BitcoinJS (e.g. 1.5.9) could depend on version 1.3.*. Why would that not work?
from typeforce.
All I'm saying is that [email protected] will continue to be broken along with every module that depends on [email protected], so it really needs to be fixed upstream with a working typeforce@^1.0.0... this [email protected] release with this ES6/ES2015 needs to be a [email protected] instead
from typeforce.
won't bitcoinjs-lib 1.5.8 start working as soon as typeforce 1.5.2 is pushed, as it'll start pulling in 1.5.2?
from typeforce.
That is correct, and then whatever dcousens is trying to do with his [email protected] release, he should probably just bump up to [email protected], so it stops affecting [email protected]
from typeforce.
just a tip for the future: changing the language you write a module in is probably worthy of a full version uptick in semver...
from typeforce.
BitcoinJS 2.0 is not a trivial change from 1.5.8, depending on how you use it.
from typeforce.
(I edited the above to be more clear because it is very confusing to have these two 1.5 and 2.0 modules in discussion, sorry about that!)
from typeforce.
@williamcotton this was passing in the tests (for Node 0.10->4) because the tests use the source code directly. It appears the babel transpiler for the release did not compile the code correctly, which has surprised me greatly.
just a tip for the future: changing the language you write a module in is probably worthy of a full version uptick in semver...
It was always written in ES6.
from typeforce.
Published as 1.5.2
, see 2133cc0
from typeforce.
@jprichardson, seems I need to work on my tests using the compiled code rather than the transpiler on mocha
. Though, to be fair, I thought there would be no difference...
from typeforce.
Reverted use of ES6 entirely in e0241d6, too many headaches. Not worth my time for this module.
No more publish step makes me feel safer anyway.
from typeforce.
Thanks! Is there a difference between tag 1.5.5 and tag v1.5.5?
from typeforce.
@Sjors well spotted. Tag 1.5.5
removed, v1.5.5
was definitively what was published.
from typeforce.
Though, the commit hash of v1.5.5
is not flush with what is in the repository, this is because of the protected branch merge causing the tag to change commit hash on merge... hmmmm. That is a bit lame.
from typeforce.
@jprichardson, seems I need to work on my tests using the compiled code rather than the transpiler on mocha. Though, to be fair, I thought there would be no difference...
Yeah, this is the first time I've seen Babel fail? https://github.com/dcousens/typeforce/blob/v1.5.1/package.json#L60 were you using babel5 or babel6? I can't tell from that line. If 6, and if weren't using any plugins/presets and you were using Node v4, the failure then makes sense.
from typeforce.
@jprichardson babel6 targets your node version rather than ES5?
from typeforce.
babel6 targets your node version rather than ES5?
No. Babel6 doesn't target (or do) anything without plugins. This effectively gives the flexibility to selectively target platforms based upon what the platform supports. As a small example, if you wanted to only target Node v4 AND you wanted to use arrows, you wouldn't need the arrow transform plugin, but you would for Node v0.10. But it depends upon the code that you write and the platform that you want to target.
from typeforce.
So,
If 6, and if weren't using any plugins/presets and you were using Node v4, the failure then makes sense.
The ES6 features that you were using were already supported by Node v4 and probably why you didn't notice any failure if you were using Babel 6 and Node v4 i.e. Babel 6 didn't do anything (assuming you didn't use any plugins/presets).
from typeforce.
Ok, it seems I've seriously underestimated how big the breaking changes in babel 6 have been. Thanks for the insight.
from typeforce.
Although, I've not had this issue in other cases...
from typeforce.
Related Issues (20)
- Standard failing HOT 3
- maybe/oneOf JSON when used with complex types outputs [object Object]
- Change quacksLike to check expected properties, not name HOT 12
- Avoid recursive throwing / return Error HOT 5
- propertyKeyType for `typeforce.map` HOT 1
- Document quacksLike / tuple / map? HOT 4
- strict in quacksLike? HOT 2
- breaks when uglified with mangle:true HOT 12
- Add uglfiyjs mangling warning to README HOT 1
- isFiniteNumber? HOT 2
- split on multiple files HOT 2
- Tuple w/ strict should enforce maximum length HOT 1
- `.Object` and `.object` are too similar HOT 3
- Remove typeforce.object in favour of typeforce.compile
- Optional error information HOT 4
- Add exception capturing tests for arrayOf, map, object and tuple
- Error.captureStackTrace is undefined HOT 3
- anyOf should accept `Array` argument, not `arguments`
- Tests failing in Node <LTS
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from typeforce.