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

Reply via email to