Skip to content

Commit

Permalink
Rework/update README.md and CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ubruhin committed Feb 20, 2023
1 parent 4fdfe95 commit 45ae8d8
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 89 deletions.
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
github: [ubruhin]
patreon: librepcb
open_collective: librepcb
custom: https://librepcb.org/donate/
76 changes: 32 additions & 44 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,35 @@
# Contributing Guidelines

## Ways to Contribute

Note that this file only contains a guide for **code contributions**. However,
there are many other ways how to contribute to the LibrePCB project, see
**[librepcb.org/contribute](https://librepcb.org/contribute/)** for details.

## Notes

- **Before spending lots of time on something, ask for feedback on your idea first!**
- **Before spending lots of time on something, please ask for feedback on
your idea first!**
- Please search issues and pull requests before adding something new to avoid duplicating efforts and conversations.
- Issues which are considered to be easy to solve are marked with the label `easy`:
[Browse all easy issues](https://github.com/LibrePCB/LibrePCB/labels/easy).
Some issues even have a mentor assigned:
[Browse all mentored issues](https://github.com/LibrePCB/LibrePCB/labels/mentored).
- To contact us use one of the following options:
- Our [discussion platform](https://librepcb.discourse.group/) (preferred)
- GitHub issues
- [IRC](https://webchat.freenode.net/?channels=#librepcb) or
[Telegram](https://telegram.me/LibrePCB_dev) chat (they are automatically
synchronized)
- [Telegram](https://telegram.me/LibrePCB_dev) or
[Libera.Chat](https://web.libera.chat/?channels=#librepcb)
(they are automatically synchronized)

## Getting Started

- Make sure you have a [GitHub account](https://github.com/signup/free).
- Open a new issue for your idea, assuming one does not already exist.
- Fork the repository on GitHub.
- Have a look at our [development resources](https://github.com/LibrePCB/LibrePCB/tree/master/dev),
especially at the [Doxygen documentation](https://doxygen.librepcb.org/).
- When using QtCreator, import and use our [code style guide file](https://github.com/LibrePCB/LibrePCB/blob/master/dev/CodingStyle_QtCreator.xml).
- Have a look at our
[development resources](https://github.com/LibrePCB/LibrePCB/tree/master/dev),
especially at the [developers documentation](https://developers.librepcb.org/).
- When using QtCreator, import and use our
[code style guide file](https://github.com/LibrePCB/LibrePCB/blob/master/dev/CodingStyle_QtCreator.xml).

## Making Changes

Expand All @@ -31,28 +38,32 @@
- To quickly create a topic branch based on master:
`git checkout -b my_contribution master`
- Please avoid working directly on the `master` branch.
- Write code which follows our [code style guides](https://doxygen.librepcb.org/df/d24/doc_code_style_guide.html)
- Write code which follows our
[code style guides](https://developers.librepcb.org/df/d24/doc_code_style_guide.html)
and [.editorconfig settings](https://github.com/LibrePCB/LibrePCB/blob/master/.editorconfig).
- You can use [clang-format](https://clang.llvm.org/docs/ClangFormat.html) to
automatically format the code. To format all files at once, just run the
script [`./dev/format_code.sh`](dev/format_code.sh).
- Make commits of logical units.
- Make sure your commit messages are in the [proper format](http://chris.beams.io/posts/git-commit/):
```
ScopeGuardList: Fix crash when constructing with size
- Make sure your commit messages are in the
[proper format](http://chris.beams.io/posts/git-commit/):
```
ScopeGuardList: Fix crash when constructing with size
Default constructed std::function is empty and throws an
std::bad_function_call when being called.
Default constructed std::function is empty and throws an
std::bad_function_call when being called.
Check if it is empty and use reserve() when constructing with size.
Check if it is empty and use reserve() when constructing with size.
Fixes #62
```
Fixes #62
```
- Make sure you have added the necessary tests for your changes.
- Run all tests to ensure nothing else was accidentally broken.
- This is done by running the binary `./build/output/librepcb-unittests`
- This is done by running the binary
`./build/tests/unittests/librepcb-unittests`.
- If you like, feel free to add yourself to the
[AUTHORS.md](https://github.com/LibrePCB/LibrePCB/blob/master/AUTHORS.md) file.
[AUTHORS.md](https://github.com/LibrePCB/LibrePCB/blob/master/AUTHORS.md)
file.
## Submitting Changes
Expand All @@ -63,30 +74,7 @@ Fixes #62
Please also take a look at our
[Pull Request Guidelines](https://developers.librepcb.org/df/d30/doc_developers.html#doc_developers_pullrequests).
## Other Contributions

This project welcomes non-code contributions, too! The following types of contributions are welcome:

- **Ideas**: Participate in an issue thread or start your own to have your voice heard.
- **Bugreports**: Found a bug in LibrePCB? Just open an issue and describe how to reproduce that bug.
- **Small Fixes**: Fix typos, clarify language, and generally improve the quality of the content.
- **Documentation**: Create/improve [documentations for users](https://github.com/LibrePCB/librepcb-doc)
or developers of LibrePCB.
- **Part Libraries**: Fork an existing part library from
https://github.com/LibrePCB-Libraries/ and add or improve parts. If you want
to create a new library, open a discussion [here](https://librepcb.discourse.group/c/libraries).
- **Translations**: Add/improve translations for LibrePCB using
[Transifex](https://www.transifex.com/librepcb/librepcb-application/dashboard/).
Follow [this guide](https://docs.transifex.com/getting-started/translators) to
get started.
- **Website**: Improve our [website](https://librepcb.org) which is hosted in
the repository
[LibrePCB/librepcb-website](https://github.com/LibrePCB/librepcb-website).
- **Sharing**: Speak about LibrePCB with your friends and colleagues, or write about it in the internet!
- **Donations**: There are several ways to contribute financially to LibrePCB,
see [details here](https://librepcb.org/donate/).

# Additional Resources
## Additional Resources
- [General GitHub documentation](https://help.github.com/)
- [GitHub pull request documentation](https://help.github.com/send-pull-requests/)
71 changes: 29 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,47 @@
# LibrePCB

[![Azure Build Status](https://dev.azure.com/LibrePCB/LibrePCB/_apis/build/status/LibrePCB.LibrePCB?branchName=master)](https://dev.azure.com/LibrePCB/LibrePCB/_build/latest?definitionId=2&branchName=master)
[![Become a Patron](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/librepcb)
[![Donate with Bitcoin](https://img.shields.io/badge/bitcoin-donate-yellow.svg)](https://blockchain.info/address/1FiXZxoXe3px1nNuNygRb1NwcYr6U8AvG8)
[![irc.freenode.net](https://img.shields.io/badge/IRC-%23librepcb-blue.svg)](https://webchat.freenode.net/?channels=#librepcb)

[![Become a Patron](https://img.shields.io/badge/Patreon-donate-orange.svg)](https://www.patreon.com/librepcb)
[![Discourse](https://img.shields.io/badge/Discourse-discuss-blueviolet.svg)](https://librepcb.discourse.group/)
[![Telegram](https://img.shields.io/badge/Telegram-chat-blue.svg)](https://telegram.me/LibrePCB_dev)
[![Website](https://img.shields.io/badge/Website-librepcb.org-29d682.svg)](https://librepcb.org/)
[![Docs](https://img.shields.io/badge/Docs-read-yellow.svg)](https://librepcb.org/docs/)

## About LibrePCB

LibrePCB is a free
[EDA](https://en.wikipedia.org/wiki/Electronic_design_automation) software to
develop printed circuit boards. It runs on Linux, Windows and Mac. The project
is still in a rather early development stage. See
[Project Status](https://docs.librepcb.org/#projectstatus) for more information
about the currently available features, limitations and known bugs.

![Screenshot](doc/screenshot.png)

### Features

- Cross-platform (Unix/Linux/BSD/Solaris, macOS, Windows)
- Multilingual (both application and library elements)
- All-In-One: project management + library/schematic/board editors
- Intuitive, modern and easy-to-use graphical user interface
- Very powerful library design with some innovative concepts
- Human-readable file formats for both libraries and projects
- Multi-PCB feature (different PCB variants of the same schematic)
- Automatic netlist synchronisation between schematic and board

[EDA](https://en.wikipedia.org/wiki/Electronic_design_automation) suite to
develop printed circuit boards on Windows, Linux and MacOS. More information
and screenshots are available at [librepcb.org](https://librepcb.org).

## Installation & Usage

**Official stable releases are provided at our
[download page](https://librepcb.org/download/).**

**Please read our [user manual](https://docs.librepcb.org/) to see how you can
install and use LibrePCB.**
The [Getting Started](https://docs.librepcb.org/#gettingstarted) guide
gives you a quick introduction to LibrePCB.

**Please read our [user manual](https://librepcb.org/docs/) to see how you can
install and use LibrePCB.** The
[quickstart tutorial](https://librepcb.org/docs/quickstart/) provides a
step-by-step guide through the whole process of designing a PCB.

## Contributing

Contributions are welcome! See our [Contributing Guide](CONTRIBUTING.md) for
details.
Contributions are welcome! See
[librepcb.org/contribute](https://librepcb.org/contribute/) and
[`CONTRIBUTING.md`](CONTRIBUTING.md) for details.

For internal details take a look at the
[automatically generated documentation (doxygen)](https://doxygen.librepcb.org/)
[developers documentation](https://developers.librepcb.org/).

## Development

***WARNING: The `master` branch always contains the latest UNSTABLE version of
LibrePCB. Everything you do with this unstable version could break your
workspace, libraries or projects, so you should not use it productively! For
productive use, please install an official release as described in the
[user manual](https://docs.librepcb.org/). For development, please read details
[user manual](https://librepcb.org/docs/). For development, please read details
[here](https://developers.librepcb.org/df/d30/doc_developers.html#doc_developers_unstable_versions).***

Instead of building LibrePCB manually, Arch Linux users could install the
package [librepcb-git](https://aur.archlinux.org/packages/librepcb-git/) from
the AUR. The package clones and builds the latest (unstable!) version of the
`master` branch from GitHub.

### Requirements

To compile LibrePCB, you need the following software components:
Expand Down Expand Up @@ -98,6 +78,12 @@ sudo pacman -S git base-devel qt5-base qt5-svg qt5-tools desktop-file-utils shar
sudo pacman -S qt5-doc qtcreator # optional
```

*Note: Instead of installing the dependencies and building LibrePCB manually,
you could install the package
[librepcb-git](https://aur.archlinux.org/packages/librepcb-git/) from the AUR.
The package clones and builds the latest version of the `master` branch from
GitHub.*

#### Installation on Mac OS X

1. Install Xcode through the app store and start it at least once (for the license)
Expand Down Expand Up @@ -149,14 +135,15 @@ The binary can then be found in `build/apps/librepcb/`.
For more detailed instructions (including how to set up Qt Creator), see
https://developers.librepcb.org/d5/d96/doc_building.html


## Credits

- First of all, many thanks to all of our [contributors](AUTHORS.md)!
- Thanks also to [cloudscale.ch](https://www.cloudscale.ch/) for sponsoring our
API server!

- A big thank you goes to all [our sponsors](https://librepcb.org/sponsors/)
which help to keep this project alive!
- Special thanks also to [cloudscale.ch](https://www.cloudscale.ch/)
for sponsoring our API server!

## License

LibrePCB is published under the [GNU GPLv3](http://www.gnu.org/licenses/gpl-3.0.html) license.
LibrePCB is published under the
[GNU GPLv3](http://www.gnu.org/licenses/gpl-3.0.html) license.
3 changes: 0 additions & 3 deletions doc/README.md

This file was deleted.

Binary file removed doc/screenshot.png
Binary file not shown.

0 comments on commit 45ae8d8

Please sign in to comment.