Creating a New Project - commoncriteria/pp-template GitHub Wiki

To create a new Project in the Commoncriteria github you need to access to the github repo and you need a command line interface to a local git installation. Your local installation can be in Linux, in a Linux subsystem on a Windows machine, or through a tool like Git Extensions.

Create a new repo using the web interface

  • Go to github.com/orgs/commoncriteria
  • Select the Repositories tab
  • New Repository
  • Name it (e.g. widget)
  • Make it public
  • add a README file

On your local machine, make a bare clone the pp-template repo

  • git clone --bare https://github.com/commoncriteria/pp-template.git
  • cd pp-template.git

This can also be done through the Git Extensions GUI by cloning the pp-template repo and selecting the --bare checkbox

Push the contents of pp-template into your new repo

  • In Git Extensions use the Console to do this.
  • git push --mirror http://github.com/commoncriteria/widget.git

Remove the local copy of the pp-template repo (or leave it)

  • cd ..
  • rm -rf pp-template.git

Do a full clone of your new project

  • git clone --recursive http://github.com/commoncriteria/widget.git
  • Or use a new instance of Git Extensions to clone the new repo

Rename your local copy of the main XML file in the input directory

  • From pp-template.xml to widget.xml (or whatever the name of your project is).

If creating a PP-Module, edit the Makefile in the main directory

  • Replace include $(TRANS)/Helper.make with include $(TRANS)/module/Module.make

If creating a cPP, edit the Makefile in the main directory

  • Replace include $(TRANS)/Helper.make with include $(TRANS)/module/cPP.make

If necessary, create an empty gh-pages branch

    git switch --orphan gh-pages
    git commit --allow-empty -m "Initial commit on gh-pages branch"
    git push -u origin gh-pages

Commit and push the project back to github

git commit
git push

See if it validates and builds

Go to the Actions tab for the project on the github site. The QuickBuild and Validate actions should both show green badges.

Update the README of the new project to refer to the correct repo etc.

  • Replace "QQQQ" with the name of the requirements document
  • Replace "Protection Profile" with "Functional Package" or "Protection Profile Module" if necessary
  • Replace "pp-template" with the name of your new repo
  • Delete the next at the top that tells you what to do

Start Working on the Document

  • By editing the input/widget.xml file
  • Typically, you should work on the master branch
  • Every commit causes html and pdf versions of the document to be generated to https://commoncriteria.github.io/widget/master/ (assuming your repo is called widget and you are working on the master branch)
  • When ready for release, you should create a release branch from the master (e.g. release-1.0)
  • And then continue working on the master branch