Ethereum Classic: Introduction to Pristine — An open standard and template for open-source projects.
In the open-source world, there are open-source standards and contributing etiquette that can help guide developers to effectively build open-source projects. When Ethereum Classic Labs Core (ECLC) launched, our lead tooling developers Shane Jonas and Zackary Belford sought out an open standard that would be fundamental to ECLC projects. An important goal of this new standard would be to encourage Documentation Driven Development (DDD) and provide a template for open-source projects.
ECLC’s solution to this problem is Pristine. A standard that encourages a DDD approach and template for new and existing projects.
Pristine is a repository within itself that contains conventions and specifications for a project to communicate the problem you are solving, ease onboarding, build and use composable tools, promote open source contribution and engagement, and promote the issue and feature discussion on Github itself. This may seem quite simple in its original condition, but there is a huge lack of conventions and specifications for high quality contributing to a large number of open-source projects.
Inside the Pristine repository:
├── BUILDING.md # Specification in creating and writing build artifacts.
├── CONTRIBUTING.md # Contributor expectations and etiquette.
├── CONVENTIONAL_COMMITS.md # Specification for light-weight but powerful commit messaging.
├── LICENSE.md # Apache 2.0
├── README.md # Project description
├── RELEASING.md # Specification for project release piplines
└── VERSIONING.md # Specification for release versioning and manipulating versions
While specifications and conventions provide enough guidance for a project. ECLC has created multiple Pristine based templates to help provide a range of starting points for developers.
- Pristine Typescript: A template for Typescript based applications.
- Pristine React: A template for React-based applications.
- Pristine Typescript Electron: A template for Typescript based Electron applications.
- Pristine Typescript React Jade: A WIP template for P2P decentralized applications based on React and Jade’s DApp tooling suite.
Need a build pipeline for your applications? Have no fear easily configurable
.circleciconfigurations are in the above templates.
Thanks to Github’s recent templating feature, developers can easily get started with any of the Pristine templates with a simple click on the repository’s page.
While forking Pristine templates or generating a template on Github is an easy way to get started, ECLC went a step forward to provide an entire CLI with agile access to Pristine templates.
The Pristine-CLI is an agile way to get started using Pristine templates. Simply install and generate your project!
npm install -g @etclabscore/pristine-cli
Create a project and follow the prompts to select a template that suits your needs.
Pristine’s contribution to the Ethereum Classic ecosystem
- ECLC has adopted Pristine as our fundamental software development philosophy and starting point for all our projects.
- The OpenRPC project uses the Pristine open standard.
- Ethernode, a team providing node hardware and node operating systems has adopted Pristine templates in their projects.
- and many more to come.