Source

This website provides access to source code of Pelican Design & Development projects. Public read-only access is available at source.pelicandd.com. Contributors are invited to use the read-write variant sourcecontrib.pelicandd.com.

Apache Subversion client can be used to download individual projects and commit the changes back to the repository.

If you're our customer and you want to access the source of your projects, go to the project of interest and click on “Source” at the top of the project page.

To start exploring public projects, chose the repository of your interest:

Infrastructure Projects relative to our hosting solutions and DevOps environment. Codebase Desktop and web applications, services and libraries.

Rules for contributors

If you're a contributor, you should take in account a few rules we have there. Some are fully automatic and are done through checks when you commit your changes: if those checks fail, your commit is rejected.

Automated verifications

Log messages should be non-empty, contain one sentence only. If multiple sentences make sense, it could indicate that the commit is doing too much and should be split. The message should end by a dot. Exclamation and question marks in log messages are indicative of wrong things happening; if you think those marks are appropriate, reconsider the commit you are doing, and maybe pause a bit before actually doing it. Finally, you can't use the same message as the one used within the last five of your commits. This restriction helps preventing multiple Up arrow followed by an Enter mistakes when working in a terminal.

Python files should be pep8 compliant. The compliance is mandatory—it cannot be turned off. The pep8 tool assumes that Python 3 is used, which means that Python 2 code could may not get in. Python files are also checked for syntax errors, also assuming that the code is using Python 3.

JavaScript files are validated using Douglas Crockford's jslint. We strongly advise to avoid silencing too many of the rules, but we understand that there are cases where the tool should be even entirely disabled. You can do that by putting /*jslint-disabled*/ at the top of the file to exclude. Minified JavaScript, that is the files which end by .min.js, are ignored automatically. This makes it possible to commit external, minified libraries.

JSON files are parsed using Python. If they cannot be parsed, only the first error the parser encountered is actually displayed.

XML files are validated using xmllint.

Bash files are run through a simple bash -n command to ensure the syntax is valid.

Escaping the rules: the checks are not done for prototype source. Any code within prototype or prototypes directory will escape from the dictatorship of the automated checks. For those of you who are unfamilar with the practices within Pelican Design & Development, we use throw-away prototyping (see types of prototyping if you're unsure what throw-away prototyping means). The source code in prototypes would never, never be used for the final product, and that the goal is to draft the code as fast as possible and forget about it as soon as the result is obtained. If, instead, you use evolutionary prototyping or incremental prototyping, make sure you name the directories to have the rules enforced from the beginning. Postponing the validation by the checkers until late in the project is a very bad idea, so, please, don't do that.

Manual verifications

Commits are pair-reviewed using both formal (checklist-based) and informal reviews. The checklists are not published publicly yet, but will soon. Meanwhile, consider contacting the code reviewer in person in case you think your commit was rejected by mistake.