Skip to content

Commit ceea112

Browse files
ostr00000pre-commit-ci[bot]chennes
authored
Add stub information (#80)
* Add stub information * fix pre commit use https protocol in repo url, do not use system installation for `ruby` (see: pre-commit/pre-commit#1930) * try newer ruby version in pre-commit * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix markdown lint errors * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Chris Hennes <[email protected]>
1 parent 70ce605 commit ceea112

26 files changed

+157
-96
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ repos:
1616
- id: end-of-file-fixer
1717
- id: check-yaml
1818
- id: check-added-large-files
19-
- repo: github.com/markdownlint/markdownlint
19+
- repo: https://github.com/markdownlint/markdownlint
2020
rev: v0.13.0
2121
hooks:
2222
- id: markdownlint
23+
language_version: 3.2.2

Gemfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
source 'https://rubygems.org'
22
gem 'github-pages', group: :jekyll_plugins
33
gem "webrick", ">= 1.8"
4-
5-

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ $ docker run --rm --volume="$PWD:/srv/jekyll:Z" -it jekyll/jekyll jekyll serve
2929
### References
3030

3131
- [Jekyll installation guidelines](https://jekyllrb.com/docs/installation/)
32-
- [Ruby 101 notes](https://jekyllrb.com/docs/ruby-101/)
32+
- [Ruby 101 notes](https://jekyllrb.com/docs/ruby-101/)

codeformatting/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ FreeCAD is written primarily in C++ and Python (with a few files in other langua
1212

1313
For the sections of the code that have already been auto-formatted, we use [git pre-commit hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) to enforce that formatting. We use the [pre-commit](https://pre-commit.com/) framework to install and manage our hooks. All developers should install pre-commit following the [instructions here](https://freecad.github.io/DevelopersHandbook/gettingstarted/). When making a new commit, the hooks examine your changed files and ensure that they follow the appropriate formatting for the section of code you are working on. You do not need to manually yourself with your code's formatting as you develop, and may code it as you like (or as your IDE likes...). The hook will ensure that your finished code conforms to project requirements.
1414

15-
Not all of FreeCAD currently uses these hooks: it is up to the Maintainers in charge of a particular Workbench or subdirectory to work with their development team to migrate their code's formatting to the automated tools, and to then enable the hooks on their subdirectory.
15+
Not all of FreeCAD currently uses these hooks: it is up to the Maintainers in charge of a particular Workbench or subdirectory to work with their development team to migrate their code's formatting to the automated tools, and to then enable the hooks on their subdirectory.
1616

1717
Currently the following sections of code are covered by pre-commit: `src/Mod/AddonManager`, `src/Tools`, and `tests/src`.
1818

codeformatting/python.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@ layout: default
77
Guidelines for code formatting in Python
88

99
Use Black.
10-

designguide/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ According to the [*Steam monthly hardware survey*](https://store.steampowered.co
4040

4141
**Note:** For operating system specific elements Windows is considered the standard due to market share (70% in 2023). Every effort should be made to maintain a uniform appearance across platforms.
4242

43-
**Note:** Deviations from the prescriptive guidelines in this design document require justification utilizing sound reasoning and require a design review that such deviation(s) are both warranted and fit within the needs of the user without degrading the overall consistency of the user experience.
43+
**Note:** Deviations from the prescriptive guidelines in this design document require justification utilizing sound reasoning and require a design review that such deviation(s) are both warranted and fit within the needs of the user without degrading the overall consistency of the user experience.

gettingstarted/dependencies.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ Information about the dependencies in FreeCAD
88

99
## Overview
1010

11-
Like most software projects, FreeCAD depends on many other packages. Most critical among these is [OpenCASCADE](https://www.opencascade.com/),
12-
the actual CAD kernel that FreeCAD is built upon. Of course, OpenCASCADE itself has its own dependencies. Many of which have *their* own
13-
dependencies, etc. The dependency graph quickly become overwhelming if you have to manually install each one. This is where package managers come
14-
in. Depending on what platform you are developing on, you have a variety of tools at your disposal to resolve these dependencies. A brief overview
11+
Like most software projects, FreeCAD depends on many other packages. Most critical among these is [OpenCASCADE](https://www.opencascade.com/),
12+
the actual CAD kernel that FreeCAD is built upon. Of course, OpenCASCADE itself has its own dependencies. Many of which have *their* own
13+
dependencies, etc. The dependency graph quickly become overwhelming if you have to manually install each one. This is where package managers come
14+
in. Depending on what platform you are developing on, you have a variety of tools at your disposal to resolve these dependencies. A brief overview
1515
of the most common ones is included below. The main purpose of this document is to highlight the primary dependencies and describe what they do and
1616
why FreeCAD needs them.
1717

@@ -21,8 +21,8 @@ The following is a brief overview of what each of FreeCAD's most critical 3rd-pa
2121

2222
### OpenCASCADE
2323

24-
OpenCASCADE Technology (OCCT) is a full-featured, professional grade CAD kernel. It was developed in 1993 and originally called
25-
CAS.CADE, by Matra Datavision in France for the Strim (Styler) and Euclid Quantum applications. In 1999 it was released as open
24+
OpenCASCADE Technology (OCCT) is a full-featured, professional grade CAD kernel. It was developed in 1993 and originally called
25+
CAS.CADE, by Matra Datavision in France for the Strim (Styler) and Euclid Quantum applications. In 1999 it was released as open
2626
source software, and since then it's been called OpenCASCADE.
2727

2828
OCCT is a big and complex set of C++ libraries that provide functionality required by a CAD application:
@@ -36,13 +36,13 @@ Note that the "Community Edition" of OpenCASCADE is no longer supported by FreeC
3636

3737
### Python
3838

39-
Python is a popular all-purpose scripting language that is widely used in Linux and open source software.
39+
Python is a popular all-purpose scripting language that is widely used in Linux and open source software.
4040
In FreeCAD, Python is used during compilation and also at runtime in different ways. FreeCAD itself contains
4141
hundreds of thousands of lines of Python code, and all FreeCAD Addons and Macros are written in Python.
4242

4343
### Qt
4444

45-
Qt is one of the most popular graphical user interface (GUI) toolkits available in the open source world.
45+
Qt is one of the most popular graphical user interface (GUI) toolkits available in the open source world.
4646
FreeCAD uses this toolkit to draw the interface of the program, as well as to provide some advanced networking functionality
4747
and translation facilities. FreeCAD currently provides primary support for Qt v5.12 - v5.15, and work is ongoing to support Qt v6.4 and
4848
later.
@@ -51,62 +51,62 @@ Further information about Qt libraries and their programming documentation are a
5151

5252
### PySide and Shiboken
5353

54-
Shiboken is the Python binding generator that Qt for Python uses to create the PySide module, in other words, it is the system that
54+
Shiboken is the Python binding generator that Qt for Python uses to create the PySide module, in other words, it is the system that
5555
is used to expose the Qt C++ API to the Python language. FreeCAD's Python code uses the PySide library to draw its user interface elements.
5656
FreeCAD provides primary support for PySide2 (corresponding to Qt5), and support for PySide6 (corresponding to Qt6) is in progress.
5757
Python developers should import `PySide` (with no numeric suffix) -- at compile-time FreeCAD's build system will generate the appropriate
5858
version.
5959

6060
### Coin3D
6161

62-
The dependencies Coin, Quarter, and Pivy are collectively part of the Coin3D library system. Coin3D is a high-level 3D graphics library
63-
with a C++ application programming interface. It uses scenegraph data structures to render real-time graphics suitable for all kinds
62+
The dependencies Coin, Quarter, and Pivy are collectively part of the Coin3D library system. Coin3D is a high-level 3D graphics library
63+
with a C++ application programming interface. It uses scenegraph data structures to render real-time graphics suitable for all kinds
6464
of scientific and engineering visualization applications.
6565

66-
Coin3D (Open Inventor) is used as the 3D viewer in FreeCAD because the OpenCASCADE viewer (AIS and Graphics3D) has limitations and performance
67-
bottlenecks, especially with large-scale engineering rendering; other things like textures or volumetric rendering are not entirely supported
68-
by the OpenCASCADE viewer.
66+
Coin3D (Open Inventor) is used as the 3D viewer in FreeCAD because the OpenCASCADE viewer (AIS and Graphics3D) has limitations and performance
67+
bottlenecks, especially with large-scale engineering rendering; other things like textures or volumetric rendering are not entirely supported
68+
by the OpenCASCADE viewer.
6969

7070
### Boost
7171

72-
The Boost C++ libraries are collections of peer-reviewed, open source libraries that extend the functionality of C++. They are intended to
73-
be widely useful across a broad spectrum of applications, and to work well with the C++ Standard Library. The Boost license is designed
72+
The Boost C++ libraries are collections of peer-reviewed, open source libraries that extend the functionality of C++. They are intended to
73+
be widely useful across a broad spectrum of applications, and to work well with the C++ Standard Library. The Boost license is designed
7474
to encourage their use in both open source and closed source projects. Over time, many Boost libraries end up incorporated into the C++ standard
7575
library itself. As this happens, developers should work to transition their code to the `std::` variant rather than the `boost::` variant. Note
7676
that exception is made for `boost::regex`, which as of this writing is still considerably faster than its `std::regex` counterpart.
7777

7878
### Xerces-C++
7979

80-
Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to
81-
read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents. Xerces-C++ is
80+
Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to
81+
read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents. Xerces-C++ is
8282
faithful to the XML 1.0 recommendation and associated standards. The parser is used for saving and restoring parameters in FreeCAD.
8383

8484
### Eigen3
8585

86-
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. If you just want to use Eigen,
87-
you can use the header files right away. There is no binary library to link to, and no configured header file. Eigen is a pure template library
86+
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. If you just want to use Eigen,
87+
you can use the header files right away. There is no binary library to link to, and no configured header file. Eigen is a pure template library
8888
defined in the headers. Eigen is used in FreeCAD for many vector operations in 3D space.
8989

9090
### Zipios++
9191

92-
Zipios++ is a C++ library for reading and writing .zip files. Access to individual entries is provided through standard C++ iostreams. A
93-
simple read-only virtual file system that mounts regular directories and .zip files is also provided. The structure and public interface
92+
Zipios++ is a C++ library for reading and writing .zip files. Access to individual entries is provided through standard C++ iostreams. A
93+
simple read-only virtual file system that mounts regular directories and .zip files is also provided. The structure and public interface
9494
of Zipios++ are loosely based on the java.util.zip package of Java.
9595

96-
FreeCAD's native file format .FCstd is in reality a .zip file that stores and compresses other types of data within it, such as BREP
96+
FreeCAD's native file format .FCstd is in reality a .zip file that stores and compresses other types of data within it, such as BREP
9797
and XML files. Therefore, Zipios++ is used to save and open compressed archives, including FreeCAD files.
9898

99-
A copy of Zipios++ is included in the source code of FreeCAD so it is compiled together with it. If you want to use an external Zipios++
99+
A copy of Zipios++ is included in the source code of FreeCAD so it is compiled together with it. If you want to use an external Zipios++
100100
library, provided by your operating system, you may set `-DFREECAD_USE_EXTERNAL_ZIPIOS=ON` with cmake.
101101

102-
Zipios++ uses the Zlib library to perform the actual decompression of files.
102+
Zipios++ uses the Zlib library to perform the actual decompression of files.
103103

104104
### Zlib
105105

106-
Zlib is designed to be a free, general-purpose, lossless data-compression library for use on any computer hardware and operating system.
106+
Zlib is designed to be a free, general-purpose, lossless data-compression library for use on any computer hardware and operating system.
107107
It implements the DEFLATE compression algorithm commonly used in .zip and .gzip files.
108108

109-
A copy of this library is included in the source code of FreeCAD so it is compiled together with it.
109+
A copy of this library is included in the source code of FreeCAD so it is compiled together with it.
110110

111111
## Dependency management
112112

gettingstarted/index.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ FreeCAD depends on many other open source projects to provide the basic foundati
3333
1. Fork [https://github.com/FreeCAD/FreeCAD](https://github.com/FreeCAD/FreeCAD) on GitHub
3434
2. Clone your fork: for example, on the command line you can use `git clone https://github.com/YourUsername/FreeCAD FreeCAD-src`
3535
3. Set up `pre-commit` (our automatic code-formatter and checker):
36-
36+
3737

3838
- Install `pre-commit` (either using your system package manager or pip):
3939
- Debian/Ubuntu: `apt install pre-commit`
@@ -42,22 +42,22 @@ FreeCAD depends on many other open source projects to provide the basic foundati
4242
- Other (pip not in PATH): `python -m pip install pre-commit`
4343
- On a command line, change into your FreeCAD clone, e.g. `cd FreeCAD-src`
4444
- Run `pre-commit install` (or `python -m pre-commit install`, depending on your PATH)
45-
46-
47-
45+
46+
47+
4848
4. We **strongly** recommend doing an out-of-source build, that is, build FreeCAD and put all generated files in a separate directory. Otherwise, the build files will be spread all over the source code and it will be much harder to sort out one from the other. A build directory can be created outside the FreeCAD source folder or inside:
4949

5050
- `mkdir build`
5151
- `cd build`
5252

5353
5. Run CMake, either in via the CMake GUI or on the command line see the wiki compilation page for your operating system for a detailed list of options.
5454
6. CMake will generate project files that can be read by your IDE of choice. See your IDE's documentation for details. In general:
55-
55+
5656
- On Linux, compile with a command like `cmake --build /path/to/FreeCAD-src` run from your build directory ( or `cmake --build ..` if your build directory is inside FreeCAD-src).
5757
- On Windows with Visual Studio, build the "ALL_BUILD target" (you will have to change the path to the final executable the first time you try to run that target).
5858
- On Mac on the command line use `cmake --build /path/to/FreeCAD-src` from your build directory, or if using CLion be sure to "Build All" the first time you run.
59-
60-
7. If you plan on submitting a PR, create a branch:
59+
60+
7. If you plan on submitting a PR, create a branch:
6161

6262
- `git branch fixTheThing`
6363
- `git checkout fixTheThing` (or both commands in one go: `git checkout -b fixTheThing`)

maintainersguide/git.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ add a second fetch line to the upstream remote definition. This line will fetch
3030
fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
3131
```
3232

33-
### now you can fetch PRs with the command
33+
### now you can fetch PRs with the command
3434
```bash
3535
git fetch upstream
3636
```
@@ -39,7 +39,3 @@ git fetch upstream
3939
```bash
4040
git checkout upstream/pr/1234
4141
```
42-
43-
44-
45-

0 commit comments

Comments
 (0)