semantic_puppet 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/semantic_puppet/gem_version.rb +1 -1
- data/lib/semantic_puppet/version.rb +1 -1
- data/spec/unit/semantic_puppet/version_spec.rb +187 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3b8c9749c1289e2571d5252ea6bd1a464545d9f
|
4
|
+
data.tar.gz: c73441801b17011eb978062596b86216bcb224f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bf4ca513a1edde4040868602fb1ff4b92d849681547cfb11a8e7f274c1b169ff61eec066fcfd1c5ba9b9178fd6c3cfa91b508bf126706163ea73ccd6836bc95
|
7
|
+
data.tar.gz: 72d5a7cf4727fc5d84adff17884d433de4ee0d985bcccd4cab1170a33346d3bea81ed69df5f7c9b8f75161acc5ed812bf259db1ef915e82626b2649b6f4a97f8
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## 1.0.1 - 2017-07-01
|
6
|
+
- Fix bug causing pre-release identifiers being considered invalid when they contained letters but started with a zero
|
7
|
+
|
5
8
|
## 1.0.0 - 2017-04-05
|
6
9
|
- Complete rewrite of the VersionRange to make it compatible with Node Semver
|
7
10
|
- General speedup of Version (hash, <=>, and to_s in particular)
|
@@ -351,22 +351,199 @@ describe SemanticPuppet::Version do
|
|
351
351
|
end
|
352
352
|
|
353
353
|
describe '.valid?' do
|
354
|
-
# All the specific variations are tested in the .parse tests, so these are just basic
|
355
|
-
# smoke tests.
|
356
|
-
|
357
354
|
def subject(str)
|
358
355
|
SemanticPuppet::Version.valid?(str)
|
359
356
|
end
|
360
357
|
|
361
|
-
|
362
|
-
|
363
|
-
|
358
|
+
context 'Spec v2.0.0' do
|
359
|
+
context 'Section 2' do
|
360
|
+
# A normal version number MUST take the form X.Y.Z where X, Y, and Z are
|
361
|
+
# non-negative integers, and MUST NOT contain leading zeroes. X is the
|
362
|
+
# major version, Y is the minor version, and Z is the patch version.
|
363
|
+
|
364
|
+
it 'rejects versions that contain too few parts' do
|
365
|
+
expect(subject('1.2')).to be false
|
366
|
+
end
|
367
|
+
|
368
|
+
it 'rejects versions that contain too many parts' do
|
369
|
+
expect(subject('1.2.3.4')).to be false
|
370
|
+
end
|
371
|
+
|
372
|
+
it 'rejects versions that contain non-integers' do
|
373
|
+
expect(subject('x.2.3')).to be false
|
374
|
+
expect(subject('1.y.3')).to be false
|
375
|
+
expect(subject('1.2.z')).to be false
|
376
|
+
end
|
377
|
+
|
378
|
+
it 'rejects versions that contain negative integers' do
|
379
|
+
expect(subject('-1.2.3')).to be false
|
380
|
+
expect(subject('1.-2.3')).to be false
|
381
|
+
expect(subject('1.2.-3')).to be false
|
382
|
+
end
|
383
|
+
|
384
|
+
it 'rejects version numbers containing leading zeroes' do
|
385
|
+
expect(subject('01.2.3')).to be false
|
386
|
+
expect(subject('1.02.3')).to be false
|
387
|
+
expect(subject('1.2.03')).to be false
|
388
|
+
end
|
389
|
+
|
390
|
+
it 'permits zeroes in version number parts' do
|
391
|
+
expect(subject('0.2.3')).to be true
|
392
|
+
expect(subject('1.0.3')).to be true
|
393
|
+
expect(subject('1.2.0')).to be true
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
397
|
+
context 'Section 9' do
|
398
|
+
# A pre-release version MAY be denoted by appending a hyphen and a
|
399
|
+
# series of dot separated identifiers immediately following the patch
|
400
|
+
# version. Identifiers MUST comprise only ASCII alphanumerics and
|
401
|
+
# hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric
|
402
|
+
# identifiers MUST NOT include leading zeroes. Pre-release versions
|
403
|
+
# have a lower precedence than the associated normal version. A
|
404
|
+
# pre-release version indicates that the version is unstable and
|
405
|
+
# might not satisfy the intended compatibility requirements as denoted
|
406
|
+
# by its associated normal version.
|
407
|
+
# Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.
|
408
|
+
|
409
|
+
it 'rejects prerelease identifiers with non-alphanumerics' do
|
410
|
+
expect(subject('1.2.3-$100')).to be false
|
411
|
+
expect(subject('1.2.3-rc.1@me')).to be false
|
412
|
+
end
|
413
|
+
|
414
|
+
it 'rejects empty prerelease versions' do
|
415
|
+
expect(subject('1.2.3-')).to be false
|
416
|
+
end
|
417
|
+
|
418
|
+
it 'rejects empty prerelease version identifiers' do
|
419
|
+
expect(subject('1.2.3-.rc1')).to be false
|
420
|
+
expect(subject('1.2.3-rc1.')).to be false
|
421
|
+
expect(subject('1.2.3-rc..1')).to be false
|
422
|
+
end
|
423
|
+
|
424
|
+
it 'rejects numeric prerelease identifiers with leading zeroes' do
|
425
|
+
expect(subject('1.2.3-01')).to be false
|
426
|
+
expect(subject('1.2.3-rc.01')).to be false
|
427
|
+
end
|
428
|
+
|
429
|
+
it 'permits numeric prerelease identifiers of zero' do
|
430
|
+
expect(subject('1.2.3-0')).to be true
|
431
|
+
expect(subject('1.2.3-rc.0')).to be true
|
432
|
+
end
|
433
|
+
|
434
|
+
it 'permits non-numeric prerelease identifiers' do
|
435
|
+
expect(subject('1.2.3-DEADBEEF')).to be true
|
436
|
+
expect(subject('1.2.3-DE.AD.BE.EF')).to be true
|
437
|
+
expect(subject('2.1.0-12-BE-EF')).to be true
|
438
|
+
end
|
439
|
+
|
440
|
+
it 'permits non-numeric prerelease identifiers with leading zeroes' do
|
441
|
+
expect(subject('1.2.3-0xDEADBEEF')).to be true
|
442
|
+
expect(subject('1.2.3-rc.0x10c')).to be true
|
443
|
+
expect(subject('2.1.0-0016-13fae4a9')).to be true
|
444
|
+
end
|
445
|
+
end
|
446
|
+
|
447
|
+
context 'Section 10' do
|
448
|
+
# Build metadata MAY be denoted by appending a plus sign and a series
|
449
|
+
# of dot separated identifiers immediately following the patch or
|
450
|
+
# pre-release version. Identifiers MUST comprise only ASCII
|
451
|
+
# alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty.
|
452
|
+
# Build metadata SHOULD be ignored when determining version precedence.
|
453
|
+
# Thus two versions that differ only in the build metadata, have the
|
454
|
+
# same precedence.
|
455
|
+
# Examples: 1.0.0-alpha+001, 1.0.0+20130313144700,
|
456
|
+
# 1.0.0-beta+exp.sha.5114f85.
|
457
|
+
|
458
|
+
it 'rejects build identifiers with non-alphanumerics' do
|
459
|
+
expect(subject('1.2.3+$100')).to be false
|
460
|
+
expect(subject('1.2.3+rc.1@me')).to be false
|
461
|
+
end
|
462
|
+
|
463
|
+
it 'rejects empty build metadata' do
|
464
|
+
expect(subject('1.2.3+')).to be false
|
465
|
+
end
|
466
|
+
|
467
|
+
it 'rejects empty build identifiers' do
|
468
|
+
expect(subject('1.2.3+.rc1')).to be false
|
469
|
+
expect(subject('1.2.3+rc1.')).to be false
|
470
|
+
expect(subject('1.2.3+rc..1')).to be false
|
471
|
+
end
|
472
|
+
|
473
|
+
it 'permits numeric build identifiers with leading zeroes' do
|
474
|
+
expect(subject('1.2.3+01')).to be true
|
475
|
+
expect(subject('1.2.3+rc.01')).to be true
|
476
|
+
end
|
477
|
+
|
478
|
+
it 'permits numeric build identifiers of zero' do
|
479
|
+
expect(subject('1.2.3+0')).to be true
|
480
|
+
expect(subject('1.2.3+rc.0')).to be true
|
481
|
+
end
|
482
|
+
|
483
|
+
it 'permits non-numeric build identifiers with leading zeroes' do
|
484
|
+
expect(subject('1.2.3+0xDEADBEEF')).to be true
|
485
|
+
expect(subject('1.2.3+rc.0x10c')).to be true
|
486
|
+
end
|
487
|
+
end
|
364
488
|
end
|
365
489
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
490
|
+
context 'Spec v1.0.0' do
|
491
|
+
context 'Section 2' do
|
492
|
+
# A normal version number MUST take the form X.Y.Z where X, Y, and Z
|
493
|
+
# are integers. X is the major version, Y is the minor version, and Z
|
494
|
+
# is the patch version.
|
495
|
+
|
496
|
+
it 'rejects versions that contain too few parts' do
|
497
|
+
expect(subject('1.2')).to be false
|
498
|
+
end
|
499
|
+
|
500
|
+
it 'rejects versions that contain too many parts' do
|
501
|
+
expect(subject('1.2.3.4')).to be false
|
502
|
+
end
|
503
|
+
|
504
|
+
it 'rejects versions that contain non-integers' do
|
505
|
+
expect(subject('x.2.3')).to be false
|
506
|
+
expect(subject('1.y.3')).to be false
|
507
|
+
expect(subject('1.2.z')).to be false
|
508
|
+
end
|
509
|
+
|
510
|
+
it 'permits zeroes in version number parts' do
|
511
|
+
expect(subject('0.2.3')).to be true
|
512
|
+
expect(subject('1.0.3')).to be true
|
513
|
+
expect(subject('1.2.0')).to be true
|
514
|
+
end
|
515
|
+
end
|
516
|
+
|
517
|
+
context 'Section 4' do
|
518
|
+
# A pre-release version number MAY be denoted by appending an arbitrary
|
519
|
+
# string immediately following the patch version and a dash. The string
|
520
|
+
# MUST be comprised of only alphanumerics plus dash [0-9A-Za-z-].
|
521
|
+
# Pre-release versions satisfy but have a lower precedence than the
|
522
|
+
# associated normal version. Precedence SHOULD be determined by
|
523
|
+
# lexicographic ASCII sort order.
|
524
|
+
# For instance: 1.0.0-alpha1 < 1.0.0-beta1 < 1.0.0-beta2 < 1.0.0-rc1
|
525
|
+
|
526
|
+
it 'rejects prerelease identifiers with non-alphanumerics' do
|
527
|
+
expect(subject('1.2.3-$100')).to be false
|
528
|
+
expect(subject('1.2.3-rc.1@me')).to be false
|
529
|
+
end
|
530
|
+
|
531
|
+
it 'rejects empty prerelease versions' do
|
532
|
+
expect(subject('1.2.3-')).to be false
|
533
|
+
end
|
534
|
+
|
535
|
+
it 'rejects numeric prerelease identifiers with leading zeroes' do
|
536
|
+
expect(subject('1.2.3-01')).to be false
|
537
|
+
end
|
538
|
+
|
539
|
+
it 'permits numeric prerelease identifiers of zero' do
|
540
|
+
expect(subject('1.2.3-0')).to be true
|
541
|
+
end
|
542
|
+
|
543
|
+
it 'permits non-numeric prerelease identifiers with leading zeroes' do
|
544
|
+
expect(subject('1.2.3-0xDEADBEEF')).to be true
|
545
|
+
end
|
546
|
+
end
|
370
547
|
end
|
371
548
|
end
|
372
549
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semantic_puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gettext-setup
|