Skip to content

Commit f141f1f

Browse files
authored
Merge pull request #63 from yash-nisar/no_mandatory_version
Do not require the SPDX version to be 1.2 #53
2 parents 354eaf6 + 6006040 commit f141f1f

File tree

11 files changed

+25
-55
lines changed

11 files changed

+25
-55
lines changed

data/SPDXRdfExample.rdf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<creator>Person: Gary O'Neall</creator>
1414
</CreationInfo>
1515
</creationInfo>
16-
<specVersion>SPDX-1.2</specVersion>
16+
<specVersion>SPDX-2.1</specVersion>
1717
<referencesFile>
1818
<File rdf:nodeID="A0">
1919
<licenseConcluded>

data/SPDXSimpleTag.tag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Document info
2-
SPDXVersion: SPDX-1.2
2+
SPDXVersion: SPDX-2.1
33
DataLicense: CC0-1.0
44
DocumentComment: <text>Sample Comment</text>
55

data/SPDXTagExample.tag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
SPDXVersion: SPDX-1.2
1+
SPDXVersion: SPDX-2.1
22
DataLicense: CC0-1.0
33
DocumentComment: <text>This is a sample spreadsheet</text>
44

spdx/parsers/builderexceptions.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ class BuilderException(Exception):
2020
pass
2121

2222

23-
class IncompatibleVersionError(BuilderException):
24-
def __init__(self, msg):
25-
self.msg = msg
26-
27-
2823
class CardinalityError(BuilderException):
2924
def __init__(self, msg):
3025
self.msg = msg

spdx/parsers/rdfbuilders.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from spdx import document
2121
from spdx import version
2222
from spdx.parsers.builderexceptions import CardinalityError
23-
from spdx.parsers.builderexceptions import IncompatibleVersionError
2423
from spdx.parsers.builderexceptions import OrderError
2524
from spdx.parsers.builderexceptions import SPDXValueError
2625
from spdx.parsers import tagvaluebuilders
@@ -39,24 +38,16 @@ def set_doc_version(self, doc, value):
3938
Raise exceptions:
4039
- SPDXValueError if malformed value,
4140
- CardinalityError if already defined,
42-
- IncompatibleVersionError if not 1.2.
4341
"""
44-
# FIXME: relax version supported
4542
if not self.doc_version_set:
4643
self.doc_version_set = True
4744
m = self.VERS_STR_REGEX.match(value)
4845
if m is None:
4946
raise SPDXValueError('Document::Version')
5047
else:
51-
vers = version.Version(major=int(m.group(1)),
52-
minor=int(m.group(2)))
53-
54-
# FIXME: we can deal with newer versions too
55-
if vers == version.Version(major=1, minor=2):
56-
doc.version = vers
57-
return True
58-
else:
59-
raise IncompatibleVersionError(value)
48+
doc.version = version.Version(major=int(m.group(1)),
49+
minor=int(m.group(2)))
50+
return True
6051
else:
6152
raise CardinalityError('Document::Version')
6253

spdx/parsers/tagvalue.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from spdx.parsers.builderexceptions import CardinalityError
2525
from spdx.parsers.builderexceptions import OrderError
2626
from spdx.parsers.builderexceptions import SPDXValueError
27-
from spdx.parsers.builderexceptions import IncompatibleVersionError
2827
from spdx.parsers.lexers.tagvalue import Lexer
2928
from spdx import document
3029

@@ -1113,10 +1112,6 @@ def p_spdx_version_1(self, p):
11131112
self.error = True
11141113
msg = ERROR_MESSAGES['DOC_VERSION_VALUE'].format(p[2], p.lineno(1))
11151114
self.logger.log(msg)
1116-
except IncompatibleVersionError:
1117-
self.error = True
1118-
self.logger.log(
1119-
'SPDXVersion must be SPDX-1.2 found {0}.'.format(value))
11201115

11211116
def p_spdx_version_2(self, p):
11221117
"""spdx_version : DOC_VERSION error"""

spdx/parsers/tagvaluebuilders.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from spdx.parsers.builderexceptions import CardinalityError
3131
from spdx.parsers.builderexceptions import OrderError
3232
from spdx.parsers.builderexceptions import SPDXValueError
33-
from spdx.parsers.builderexceptions import IncompatibleVersionError
3433
from spdx.parsers import validations
3534

3635

@@ -74,22 +73,17 @@ def set_doc_version(self, doc, value):
7473
"""
7574
Set the document version.
7675
Raise SPDXValueError if malformed value, CardinalityError
77-
if already defined, IncompatibleVersionError v
76+
if already defined
7877
"""
79-
# FIXME: we support other versions!!!
8078
if not self.doc_version_set:
8179
self.doc_version_set = True
8280
m = self.VERS_STR_REGEX.match(value)
8381
if m is None:
8482
raise SPDXValueError('Document::Version')
8583
else:
86-
vers = version.Version(major=int(m.group(1)),
87-
minor=int(m.group(2)))
88-
if vers == version.Version(major=1, minor=2):
89-
doc.version = vers
90-
return True
91-
else:
92-
raise IncompatibleVersionError(value)
84+
doc.version = version.Version(major=int(m.group(1)),
85+
minor=int(m.group(2)))
86+
return True
9387
else:
9488
raise CardinalityError('Document::Version')
9589

spdx/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Version(object):
2828
"""
2929
VERS_STR_REGEX = re.compile(r'(\d+)\.(\d+)')
3030

31-
def __init__(self, major=1, minor=2):
31+
def __init__(self, major, minor):
3232
self.major = major
3333
self.minor = minor
3434

tests/test_builder.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,20 @@ def setUp(self):
3131
self.builder = builders.DocBuilder()
3232

3333
def test_correct_version(self):
34-
version_str = 'SPDX-1.2'
34+
version_str = 'SPDX-2.1'
3535
self.builder.set_doc_version(self.document, version_str)
36-
assert (self.document.version.major == 1 and
37-
self.document.version.minor == 2)
36+
assert (self.document.version.major == 2 and
37+
self.document.version.minor == 1)
3838

3939
@testing_utils.raises(builders.CardinalityError)
4040
def test_version_cardinality(self):
41-
version_str = 'SPDX-1.2'
41+
version_str = 'SPDX-2.1'
4242
self.builder.set_doc_version(self.document, version_str)
4343
self.builder.set_doc_version(self.document, version_str)
4444

4545
@testing_utils.raises(builders.SPDXValueError)
4646
def test_version_value(self):
47-
version_str = '1.2'
48-
self.builder.set_doc_version(self.document, version_str)
49-
50-
@testing_utils.raises(builders.IncompatibleVersionError)
51-
def test_version_number(self):
52-
version_str = 'SPDX-2.0'
47+
version_str = '2.1'
5348
self.builder.set_doc_version(self.document, version_str)
5449

5550
def test_correct_data_lics(self):

tests/test_document.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@
3535
class TestVersion(TestCase):
3636

3737
def test_creation(self):
38-
v = Version(major=1, minor=2)
39-
assert v.major == 1
40-
assert v.minor == 2
38+
v = Version(major=2, minor=1)
39+
assert v.major == 2
40+
assert v.minor == 1
4141

4242
def test_comparison(self):
4343
v1 = Version(major=1, minor=2)
@@ -57,12 +57,12 @@ class TestDocument(TestCase):
5757

5858
def test_creation(self):
5959
document = Document(
60-
version=Version(major=1, minor=2),
60+
version=Version(major=2, minor=1),
6161
data_license=License(full_name='Academic Free License v1.1',
6262
identifier='AFL-1.1')
6363
)
6464
assert document.comment is None
65-
assert document.version == Version(1, 2)
65+
assert document.version == Version(2, 1)
6666
assert document.data_license.identifier == 'AFL-1.1'
6767

6868
def test_document_validate_failures_returns_informative_messages(self):

0 commit comments

Comments
 (0)