Try to include the following section headings in your repo README file:
- Description - absolutely necessary
- Table of Contents - only include if your README is long
- Installation - not necessary if it's a simple HTML, CSS & vanilla JS project.
- Usage - not sure about this one
- License - not necessary if it is a simple project
- Contributing - you need this if you want contributors
- Code of Conduct - same as above
- Tests - skip if you do have a testing library as part of the repo
- Questions - this could be helpful
- License for your repo: Choose a License
- I prefer the MIT Version. Just enter your GitHub repo link in the right sidebar.
- Contributing Templates:
- Contributor Covenant: A Code of Conduct for Open Source Communities
Notes from Eddie Jaoude & freeCodeCamp
- Labels: used to find your repos - need issues with labels – javascript,
- review other people’s Prs to see what they do
- find gist: GitHub starred gists
- Must have elements in all OS projects:
- License: If a project does not have an open-source license, then it is not open source
- The license helps protect contributors and users. Businesses and savvy developers usually won't touch a project without this protection: Choose a License
- README file: explains how to get started with a project. It lists the requirements for contributing to the project
- A good README should contain everything a potential contributor would want to know about the project
- Contribution Guidelines: These are guidelines that help people who contribute to the project know exactly what is expected from them: Contributor guidelines template - no longer any good
- Code of Conduct: a document that establishes your expectations for how your contributors and participants behave: Code of Conduct
- Issue Tracker – a contributor can create an issue and link it to a pull request and fellow contributors can opt in to try and fix it
- Pull Requests - tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with the collaborator and add follow-up commits before the're merged into the base branch
- do everything on the insights tab to make sure your repos are good
- First timers only
- GitHub first contributions
- Specref API - not sure what this one is
- GitHub Docs
- Find new issues: Mariner Issue Collector
- GitHub Odoo: a suite of web based open source business apps
- GitHub Good First Issues
- Good First Issues and [Good First Issues website](Good First Issues)
- CodeTriage
- Check if it has a license,
- check the date of the last commit (is it recent?),
- check the # of contributors,
- how often do they make commits?
Also, look for:
- open issues,
- time for maintainers to respond,
- are there active discussions,
- are issues closed regularly,
- are there open pull requests
- Also search:
is:open is:issue archived:false label:"good first issue" language"javascript"
- Another Tip: search the project for "To D" or "ToDo" or "To-Do"- they often get forgotten about – find one, raise an issue, then fix it
Github now has a sponsorship
- People can sponsor and github doesn’t take anything but they can match it
- Click the Settings tab and go to the FEatures section
- Click the checkbox for Sponsorships
- There is a card with the title Display a "Sponsor" button with the text Add links to GitHub Sponsors or third-party methods your repository accepts for financial contributions to your project
- There is also a button that says Set up sponsor button
- Clicking it takes you to a file named FUNDING.yml - in that file are notes to add links to things like Patreon, Open Collective, Ko-fi and many more.
A tag/release is where you are happy with the state of the project> It means it is a production ready asset. A tag is made up of multiple comits between tags – or they are after commits, a save point – and a tag is a collection of commits.
config.yml
- YAML/yml files start with 3 dashes and end with 3 dots which allows you start and stop the the yaml data and allows you to have multiple in one file
- Though the ending 3 dots are optional – you have key-value pairs
- Values can be strings, integers, floats, booleans, arrays, lists and dictionaries – use the vscode extension YAML
- Can be
.yml
or.yaml
– both are good – yaml can detect strings so you don’t actually need the quotes but you need quotes when you have numbers/integer that needs to be interpreted as a string - For lists use an slight index and a dash then space like markdown
- The dictionary data type has elements that have elements (Attibutes) inside it – or more importantly you can do nesting
- It's important to have some pull requests and issues - and branches greater than 1 – main/master, develop, feature1, feature2, … but not more than 9,
- Open source is more about communication and collaboration
- README – can include technologies needed to run the app like node or MySQL – what is the goal of the project, why it is important, why people should get involved
- Great GitHub README profiles: https://github.com/nhcarrigan/nhcarrigan | https://github.com/santoshyadavdev/santoshyadavdev | https://github.com/salitha10/salitha10 | https://github.com/iresharma/iresharma | https://github.com/joesinghh |
- Great link: Awesome GitHub Profile README
- Awesome GitHub profiles