Coder Social home page Coder Social logo

pristine's Introduction

Pristine

Pristine is an open source repository in its original condition.

There are a lack of repositories to start from to build community driven open source projects. Pristine is a starting point, it follows a Documentation Driven Development approach, and can be used as a resource to augment existing documentation.

How to use Pristine in your project

There are 2 options for using pristine with your project.

  1. Fork this repo as the start of your own, OR
  2. follow these instructions to use it on an existing repository.

Documentation Driven Development

There are many ways to drive open source development. Documenting the problem in the README gives a middle ground between technical and non-technical specifications. This allows organizing solutions to this challenge around community and documentation.

[...] a beautifully crafted library with no documentation is also damn near worthless. If your software solves the wrong problem or nobody can figure out how to use it, there’s something very bad going on.

Conventions and Specifications

Using conventions, documentation and specifications make it easier to:

  • communicate the problem you are solving
  • ease onboarding
  • build and use composable tools
  • promote open source contribution and engagement
  • promote issue and feature discussion on Github itself

Resources

Getting Started

To get started, fork or duplicate the repository. Then edit this file and delete everything above this line.


Contributing

How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.

pristine's People

Contributors

belfordz avatar devonwesley avatar meowsbits avatar shanejonas avatar stevanlohja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pristine's Issues

Remove Jenkinsfile

Is your feature request related to a problem? Please describe.
Not all projects use Jenkinsfile's

Describe the solution you'd like
Let's just remove it

Describe alternatives you've considered
We looked at circleci/travis/jenkins and there isnt a good alternative right now

Conventional commits

Is your feature request related to a problem? Please describe.

Currently conventional commits refers and adheres to http://conventionalcommits.org/.

My issue is that this "Conventional commits" style isn't really conventional; it's actually pretty opinionated.

Since the Conventional Commits spec allows arbitrary xxx[yyy]:, it seems like the only thing that structuring a message in this way does is enable easier machine readability1 (and not work directly to Documentation Driven Development in the sense of legible and accurate documentation around development). It's just a punctuation spec, not a content spec, and despite it's name is not very generalized.

Describe the solution you'd like

Something as generic as possible, while still being able to describe something that's actually useful.

In my opinion there are more useful resources we can draw from for outlining a rubric for a "good" commit message, for example

Describe alternatives you've considered

  • scope: message; useful for big repos, not so much for small ones
  • Commit messages should start with a capital letter
  • problem: xxx / solution: yyy structure
  • https://rfc.zeromq.org/spec:44/C4/

Resources

I spent 10 minutes looking through "top starred" repos on Github for examples (for lack of a better "canon of the conventional").

A list of example repos that don't follow this pattern:

Repos I found that do use it:


  1. From the docs, 3/5 of "Why Use Conventional Commits" are for computer automation.

changelogs?

re: https://github.com/etclabscore/pristine/blob/master/RELEASING.md#generate-changelog

Don’t let your friends dump git logs into changelogs.
https://keepachangelog.com/en/1.0.0/

This is just a devil's advocate note. Personally I'd be pretty inclined to use programmatic means to handle what I would consider to be a chore of handling changelog maintenance.

With that said... Do we really need changelogs as a standard-across-the-board artifact? For me, to answer questions around what has been happening on the development of projects I typically use a combination of git logs, release notes, the github issue tracker, and, if necessary, an internet search engine. I don't know if a changelog has ever held my attention for more than 4 seconds.

Create badges defaults

In the readme we should have something like 'powered by pristine' or something.

Also, having the common badges would be great.

Release pipeline seems out of order... ?

https://github.com/etclabscore/pristine/blob/master/RELEASING.md#release-pipeline

The current process is:

  1. Build
  2. Sign
  3. Changelog
  4. Version bump
  5. Commit
  6. Push
  7. Draft release for targets (eg Github Releases)

Problems:

  • (1) Sign should come after (4) Version bumping. For programs that are version-aware (eg. multigeth) doing otherwise will yield releases w/ "dirty" versions.
  • (4) Version bump should come after (5) Commit. Otherwise tagged releases will not include the changelog changes.

Proposed solve:

  1. Changelog
  2. Commit
  3. Version bump
  4. Build
  5. Sign
  6. Push
  7. Draft

Rel #11

Labeling scheme?

loosen BUILDING and RELEASING requirements

Describe the bug
Currently we only loosely follow BUILDING.md and RELEASING.md

Expected behavior
We should match what we do in most of our repos, specifically the pristine-x built on top of this one

Additional context
example: node repos use npm build
example: some repos use publish.sh

Automated Testing & Deploying

Given the specs outlined in this repository, we should have tools to boot a ci/cd local or remote environment.

  • get working locally (and on other peoples machines)
  • get running on AWS
  • get accounts for jenkins
  • set up a github integration for pristine
  • add TESTING.md to describe how to test projects

add mdv to validate markdown links

Is your feature request related to a problem? Please describe.
I'm always frustrated when markdown links are broken. They are a big part of markdown and specs.

Describe the solution you'd like
Add mermade/mdv to Jenkinsfile as a step/stage test to validate markdown links on pull requests.

Additional context
see also open-rpc/spec#74

pull request bot

if you've forked from or are a pristined project we can track it and make a pull request back when pristine base repository changes.

we can poll for either certain commits, or all commits from etclabscore/pristine in an orgs repos, and then if pristine changes, make a PR back with the changes.

create pristine-jade-app with appbar

Having a pristine project set up with the material ui + app bar + theming gets us pretty far in starting new tools. We should have t his as a pristine-x repo to start from.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.