HSPC Collaboration Tools and Conventions
Tools
Each project wanting to use the HSPC Tools must follow these conventions. For project naming, first decide on:
- Project Category (Logical topic for this project)
- Project Name
- Project Key (Max of 5 letters)
- Software Package appendix
For example, for a Bilirubin monitoring application,
- Project Category: Bilirubin
- Project Name: Bilirubin Monitor
- Project Key: BILM
- Software Package appendix: .bilirubin.monitor
Bitbucket
We have an open source license for Bitbucket under the team HSPC (https://bitbucket.org/hspconsortium/). Bitbucket projects may be created to allow teams to work on a shared source code repository.
Project
A Bitbucket project is created with the owner as HSPC.
- Name: Project Long Name
- Key: Project Key
- Not Private
Group
A Bitbucket group is created to control write access to the project.
- Name: Project Long Name
- Team Permissions: Manage
- Default Access: Write
Repositories
A project can have multiple repositories that are created by members of the group.
- Owner: hspconsortium
- Repository Name: something that makes sense within the project
- Access Level: Not private
- Repository Type: Git
- Access Management
- Add the project group
JIRA
A JIRA project can be created to correspond with the Bitbucket project.
- Template: something that makes sense for the development team
- Name: Project Long Name
- Key: Project Key
- Project Lead: One of the members of the Bitbucket Group
Confluence
A Confluence space can be created to correspond with the Bitbucket and JIRA projects
- Name: Project Long Name
- Type: Team Space
- Space Name: Project Long Name
- Space Key: Project Key
- Team Members: Same as Bitbucket Group Members
Bamboo
A Bamboo project can be created to allow the team to build a continuous delivery pipeline.
- Plans and deployment projects: something that makes sense to the team
Software
Maven
- GroupID should be in the form: org.hspconsortium.{project category lower case}
- ArtifactID should be in the form: hspc.{project category}.{project module lower case}
- Version should be compatible with Maven’s DefaultArtifactVersion (http://maven.apache.org/ref/3.3.9/maven-artifact/xref/org/apache/maven/artifact/versioning/DefaultArtifactVersion.html)
- Project should use an HSPC parent pom that includes release configuration:
- <groupId>org.hspconsortium.reference</groupId>
<artifactId>hspc-reference-release</artifactId> or <artifactId>hspc-reference-release-spring-boot</artifactId>
For example, for Bilirubin Monitor:
<parent> <groupId>org.hspconsortium.reference</groupId> <artifactId>hspc-reference-release-spring-boot</artifactId> <version>0.2</version> </parent> <groupId>org.hspconsortium.bilirubin</groupId> <artifactId>hspc-bilirubin-monitor</artifactId> <version>0.1-SNAPSHOT</version> <packaging>war</packaging>
Package Naming
- Package naming should be in the form: org.hspconsortium.{project category lower case}.{project module lower case}
For example, for Bilirubin Monitor:
package org.hspconsortium.bilirubin.monitor;