Hello spdx-tech
This is my last report for my Google Summer of Code project and it sums up my
experience, what I’ve learnt and what I’ve produced during this time.
The project status is mostly summed up in my previous status report[1], the
changes being mostly bug-fixes and a higher test code coverage. The library has
the following features:
- RDF format parsing using goraptor (including all the RDF syntaxes supported
by raptor)
- RDF format writing (there is a known bug regarding other formats than
rdfxml-abbrev[2])
- Tag format parsing
- Validation of parsed SPDX documents
- An abstract way of representing SPDX documents (go struct spdx.Document) and
all SPDX elements (e.g. spdx.Package, spdx.Review)
- SPDX Documents can be parsed with or without metadata, which consists of the
line of provenance for SPDX elements and properties.
Features of the CLI tool spdx-go:
- converting SPDX documents to/from all RDF syntaxes and the Tag format
- pretty-printing SPDX documents
- validation of SPDX documents
- plain text output
- or HTML output (which also opens the default browser to the html file
instantly)
There are some known bugs and open issues documented on the GitHub issue
tracker[2].
For testing I used the standard tools Go provides. Most of the functions and
methods are covered by unit tests. Test files are suffixed with “_test.go”.
The code is quite documented and the repository has a README.md file. The files
named `doc.go` in some packages contain a big chuck of documentation.
I’d like to remind you of the import paths issue that I have previously raised
in the mailing list[3] . All the packages are currently imported using my
GitHub mirror. Example for the “spdx” package:
`github.com/vladvelici/spdx-go/spdx`. It can be easily changed to the official
repository but the paths may look a bit weird:
“git.spdx.org/spdx-tools-go.git.git/spdx”. A more elegant solution is
documented at [3].
GSOC was a positive experience for me as I learnt to program in Go better and I
hope my contributions will be of use. I am glad I have contributed to Linux
Foundation. SPDX is a standard in development and has a strong base but I think
it’ll get better and easier to use when better tools for it will be available
and mature enough.
I enjoyed working on the Tag parser and design the abstract structs to
represent SPDX documents. I have learned a bit about linking C code with Go
when I worked on the RDF parser as Goraptor didn’t have all the features from
Raptor that I needed (no locators and it wouldn’t compile on Macs before).
If I were to repeat this experience I would be more active in the communication
with my mentor, Philippe, and on the mailing list. I would also probably work
less every day but have the working hours more consistent throughout the GSOC
programme and try to plan the structure of the code and design the abstract
representations on paper/whiteboard and think about these more before
implementing and eventually needed to rewrite parts of the code.
The code is available on the SPDX git server[4] and mirrored on my GitHub
account[5]. I said in my previous status update[1] that I would really
appreciate a code review but no one has answered so I kindly ask you again, I
would highly appreciate it.
If there are any questions regarding the Go parsing library I would be happy to
answer them.
It was great to work on SPDX. Thank you for your support during the programme
and for accepting me to build this project. I hope I was of use.
Best wishes
Vlad
[1]: http://lists.spdx.org/pipermail/spdx-tech/2014-July/002448.html
[2]: https://github.com/vladvelici/spdx-go/issues/46
[3]: http://lists.spdx.org/pipermail/spdx-tech/2014-June/002375.html
[4]: http://git.spdx.org/spdx-tools-go.git
[5]: https://github.com/vladvelici/spdx-go/
_______________________________________________
Spdx-tech mailing list
[email protected]
https://lists.spdx.org/mailman/listinfo/spdx-tech