Welcome! We love receiving contributions from the community, so thanks for stopping by! There are many ways to contribute, including submitting bug reports, improving documentation, submitting feature requests, reviewing new submissions, or contributing code that can be incorporated into the project.
This document describes the Embedded Artistry development process. Following these guidelines shows that you respect the time and effort of the developers managing this project. In return, you will be shown respect in addressing your issue, reviewing your changes, and incorporating your contributions.
We are actively looking for additional malloc
/free
implementations! Feel free to contribute!
Table of Contents:
- Code of Conduct
- Important Resources
- Questions
- Contributing to the Project 2. Dependencies 3. Development Process 4. Building the Project 5. Adding New Implementations 5. Adding New Tests
- Community
By participating in this project, you agree to abide by the Embedded Artistry Code of Conduct. We expect all contributors to follow the Code of Conduct and to treat fellow humans with respect.
This project is managed on GitHub:
Questions can also be submitted on the Embedded Artistry website and in the Embedded Artistry Forum.
Useful Documentation:
- [Library Documentation][9]
- cppreference (API notes)
- C Standard Library Header Files
Embedded Artistry blog posts related to this project:
- Bringup Blog Category - contains multiple articles about libmemory and libc
- Implementing Malloc: First-fit Free List
- Implementing Malloc with ThreadX
- Generating Aligned Memory
Please submit your questions in the following ways:
- Filing a new GitHub Issue
- Submitting a question on the Embedded Artistry website
- Submitting a question on the Embedded Artistry forum
- Asking a question on Twitter: (mbeddedartistry).
If you've never worked with an open source project before, please check out our Open Source Contribution Guide, which contains information on:
- Resources for people new to open-source development
- How to find something to work on
- How to report issues
- Branching and PR guidelines for our projects
- Style guidelines for our projects
If you're interested in contributing = to this project, read on! Don't know where to start? Take a look at the Open Source Contribution Guide section for information on finding beginner-friendly issues on our projects.
Please review the following guides to learn about our development process:
- Open Source Contribution Guide
- Resources for people new to open-source development
- How to find something to work on
- How to report issues
- Branching and PR guidelines for our projects
- Style guidelines for our projects
- Embedded Artistry's GitHub Process, which discusses how we handle PRs and integrate changes
- Source Control Commit Guidelines, which describes our guidelines for commit messages
If you have any questions about this process, please ask us for help!
The dependencies for Embedded Artistry's standardized Meson build system are described on our website.
In addition to those dependencies, you will need the following for this repository:
git-lfs
is used to store binary files
master
contains the latest code for this project, and new versions are tagged nightly.
Please branch from master
for any new changes. Once you are ready to merge changes, open a pull request. The build server will test and analyze the branch to ensure it can be safely merged.
This project uses Embedded Artistry's standardized Meson build system. Complete instructions can be found on our website.
If you area adding new files to the library that will apply across RTOSes, you will need to modify src/meson.build
and add the new file to the common_files
list.
common_files = [
'aligned_malloc.c',
'posix_memalign.c'
]
If you would like to create a malloc
/free
implementation for a new RTOS:
* Copy the libmemory_threadx
library target and dependency
* Rename the build target and library output to match the RTOS
* Add the relevant RTOS headers to the dependencies/rtos
folder
* Update include paths if necessary
* Add your malloc_*rtos*.c
file to that RTOS's build list
If you add code you need to add tests! We’ve learned the hard way that code without tests is undependable. If your pull request reduces our test coverage because it lacks tests then it will be rejected.
This project uses CMocka as the testing framework.
Please follow these guidelines:
- New tests should be added to the
test/src/
directory tree - Each function should have its own tests in its own C file.
- When adding a new test, add the following to the relevant test coordination file:
Anyone interested in active conversation regarding this project should [join the Embedded Artistry community]https://embeddedartistry.com/community/embedded-artistry-oss/).
You can also reach out on Twitter: mbeddedartistry.