A boilerplate for quickly creating PureBasic projects with all the right settings in place.
Created by Tristano Ajmone on August 12, 2019. Released into the Public Domain.
PureBasic 5.70 LTS
Table of Contents
In June 6, 2019 GitHub announced a new feature to generate new repositories with repository templates. This is a cool feature, so I decided to create a repository template for PureBasic projects, and release it into the public domain.
You can use this template to quickly create a GitHub repository for PureBasic projects by clicking on the Use this template button placed on the bar above the files list, or by clicking on this link.
Any new repository created using this template will be optimally configured for working with PureBasic projects.
For more detailed information on using repository templates, see:
To learn more about the internal details of this template, consult the repository Wiki.
The template is just a boilerplate containing:
- Git configurations designed to optimize PureBasic workflow.
- License files of PureBasic third party components.
- README file template.
The included .gitignore
and .gitattributes
files contain carefully designed patterns that will cover most PureBasic usage scenarios in cross-platform environments.
The .gitattributes
settings ensure that end-of-line normalization is handled properly by Git across all operating systems, avoiding conflicts between Windows and Linux/macOS in collaborative projects.
It also defines some settings for GitHub Linguist, to cover some PureBasic file extensions not recognized by Linguist, and to ensure proper statistics gathering for the project, and correct syntax highlighting in the GitHub WebUI.
The .gitignore
file covers common ignore patterns for Windows, Linux and macOS, as well as excluding from the repository PureBasic project and configurations files — which usually are best kept out of a project, due to personal data leakage (with project files) and because these files will end up differing on every end-user machine, where they are overwritten and changed by the PureBasic IDE, thus polluting Git work directory (preventing branch switching) and exposing the project to spurious commits.
The license files included in this project contain up to date copies of the third party components licenses used by PureBasic.
file | required by | source |
---|---|---|
PBLicense.txt |
Required by all applications. | link |
PBLicense_3DEngine.txt |
OGRE license for PureBasic 3D Engine (OGRE). | link |
PBLicense_ExpatXML.txt |
Expat license for the XML library. | link |
PBLicense_PCRE.txt |
PCRE license for the RegularExpression library. | link |
PBLicense_Scintilla.txt |
Scintilla license for the Scintilla library. | link |
PBLicense_udis86.txt |
Udis86 license for the disassembly commands of the OnError library. | link |
These files are a useful time saver for any project, for you can quickly concatenate them into a single LICENSE
file for distributing your binaries, according to the PureLibs used by your project, and then just delete the original files of the template.
It's much faster than having to manually copy and paste each license from the PureBasic Documentation.
IMPORTANT NOTE — These license files mirror the PureBasic version indicated at the beginning of this document. Newer versions of PureBasic might introduce new third party components, and require additional credits and licenses. If you're using a different PureBasic version from the one indicated in this document, you should check the licenses provided in the PureBasic Documentation of that specific release.
I'll strive to ensure that with every new PureBasic release this template and the license files are updated accordingly (if needed), but I can't be held responsible for any licenses omissions or mistakes — every author is responsible to ensure that his/her project fulfils all the license requirements.
You also get this markdown README file that you're reading right now, which contains the PureBasic Links section providing useful links to various PureBasic assets on the Internet, which you might reuse in your project.
It's a well structured markdown document, with reference-style links to PureBasic sites of interest (at the end of the source document) which might come handy — and could spare you a good amount of typing, if you're going to link to them.
If you don't need the README file you can just trash it, but chances are that you'll be adding a README.md
file to your project anyway, so you might as well just overwrite it, or keep just those reference links that you need.
After some initial thoughts, I finally decided that it was better to include this README file in the template, for the benefit of those wishing to offer links to the PureBasic website and forums, rather than leave it out.
For those who'll need it, it's going to be a true time-saver, while those who don't need it shouldn't be bothered much by having to delete/overwrite it.
To the extent possible under law, Tristano Ajmone has waived all copyright and related or neighboring rights to the PureBasic Repository Template. This work is published from: Italy.
The PureBasic Repository Template is released into the public domain via the CC0 1.0 Universal dedication, so that it might be freely used for any project, without causing licenses conflicts and without imposing any restrictions or obligations (not even crediting or linking back).
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. See Other Information below.
- In no way are the patent or trademark rights of any person affected by CC0, nor are the rights that other persons may have in the work or in how the work is used, such as publicity or privacy rights.
- Unless expressly stated otherwise, the person who associated a work with this deed makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law.
- When using or citing the work, you should not imply endorsement by the author or the affirmer.