Skip to content

Latest commit

 

History

History
139 lines (91 loc) · 7.25 KB

CONTRIBUTING.md

File metadata and controls

139 lines (91 loc) · 7.25 KB

Contributing Guide

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:

  1. Code of Conduct
  2. Important Resources
  3. Questions
  4. Contributing to the Project 2. Dependencies 3. Development Process 4. Building the Project 5. Adding New Implementations 5. Adding New Tests
  5. Community

Code of Conduct

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.

Important Resources

This project is managed on GitHub:

Questions can also be submitted on the Embedded Artistry website and in the Embedded Artistry Forum.

Useful Documentation:

Embedded Artistry blog posts related to this project:

Questions

Please submit your questions in the following ways:

New to Open Source?

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

Contributing to the Project

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:

If you have any questions about this process, please ask us for help!

Dependencies

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

Development Process

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.

Building the Project

This project uses Embedded Artistry's standardized Meson build system. Complete instructions can be found on our website.

Adding New Implementations

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

Adding New Tests

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:
    • Add an extern function declaration in main.c: extern int ctype_tests(void);
    • Add a call to the test coordinator in main.c: overall_result |= ctype_tests();

Community

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.