lib3mf is an open source project.
Contributions are welcome and we are always looking for people that improve the implementation of the specification and extensions of 3MF.
You can also contribute by reporting bugs in the Issue tracker, helping review pull requests, participate in discussions about issues and more.
-
When filing an issue to report errors or problems, make sure to answer these five questions:
-
Which version of lib3mf are you using?
a) The API call
lib3mf_getlibraryversion
reveals lib3mf's version number.b) Windows only:
The properties of lib3mf's binary contain version information (e.g. right click on the DLL -> Properties -> Details).
-
Which operating system are you using?
-
What did you do?
-
What did you expect to see?
-
What did you see instead?
-
-
When contributing to this repository, please first discuss the change you wish to make via issue with the maintainers of this repository. This way, we can ensure that there is no overlap between contributions or development work by the 3MF consortium itself.
When ready to contribute, fork this repository and submit a pull request that references the issue it resolves. Be sure to include a clear and detailed description of the changes you've made so that we can verify them and eventually merge.
lib3mf follows the git-flow branching model. New developments are integrated into the develop-branch. lib3mf's maintainers will create releases from the develop-branch when appropriate.
Maintainers are responsible for responding to pull requests and issues, as well as guiding the direction of the project.
We currently have two maintainers:
- Alexander Oster [email protected]
- Martin Weismann [email protected]
If you've established yourself as an impactful contributor to the project, and are willing take on the extra work, we'd love to have your help maintaining it! Email the current maintainers for details.
- Clone the repository
git clone https://github.com/3MFConsortium/lib3mf
- Enter local checkout
cd lib3mf
- Initialize the googletest submodule by running
git submodule update --init
- To generate projects for Visual Studio or Unix Makefiles use the scripts in the folder cmake:
CallGenerateVS2017.bat
(Windows) orGenerateMake.sh
(Linux, Mac), or define other targets by specifying custom CMake generators.
A new folderbuild
is created and contains projects for the IDE/build target you selected. - Build the projects:
- Windows:
- Open the VS Solution in the build folder and build it
- Select the project you want to run as "Start Up Project"
- Run/debug this project in VS
- Linux/Mac:
- navigate to the
build
-folder - Call
make
to build the projects - Run/debug a project
- navigate to the
- Windows:
lib3mf is based on the hourglass pattern for software components and uses the Automatic Component Toolkit (ACT) to ease the development of this pattern.
lib3mf's goal is to run on Windows, Linunx and MacOS and most of its code is platform independent.
You can access nightly builds of lib3mf's develop branch on https://github.com/3MFConsortium/lib3mf-binaries.