Skip to content

Latest commit

 

History

History
99 lines (71 loc) · 3.68 KB

CONTRIBUTING.md

File metadata and controls

99 lines (71 loc) · 3.68 KB

Contributing to SpaceDataStandards.org

Thank you for considering contributing to SpaceDataStandards.org! Here are some guidelines to help you get started.

Building Dependencies

This project depends on a custom version of the FlatBuffers binary. You can find it on the following branch:

DigitalArsenal/flatbuffers - da_version

Install Dependencies

To set up the development environment for this project, you'll need to install the following dependencies:

Prerequisites

  1. Node.js 20: Install the latest stable version of Node.js 20 from Node.js Downloads.

    • Verify installation by running:
      node -v
    • Ensure the version is 20.x.x.
  2. Python 3 or greater: Install Python 3 from Python.org.

    • Verify installation by running:
      python3 --version
    • Ensure the version is 3.x.x or higher.
  3. Install Node.JS dependencies

    npm install
  4. Install Python dependencies

    pip install flatbuffers

Building FlatBuffers

  1. Clone the repository:

    git clone https://github.com/DigitalArsenal/flatbuffers.git
    cd flatbuffers
    git checkout da_version
  2. Build the binary:

    cmake -G "Unix Makefiles"
    make
  3. Once built, assign the flatc binary to your system path.

Assigning flatc to System Path

Windows

  1. Find the path to the flatc.exe binary.
  2. Open the Start Search, type in "env", and select "Edit the system environment variables".
  3. In the System Properties window, click on the "Environment Variables" button.
  4. In the Environment Variables window, select the Path variable in the "System variables" section and click on the "Edit" button.
  5. Click "New" and add the path to the flatc.exe binary.
  6. Click "OK" to apply the changes.

macOS/Linux

  1. Find the path to the flatc binary.
  2. Open a terminal and run the following command:
    export PATH=$PATH:/path/to/flatc
    To make this change permanent, add the above line to your ~/.bashrc, ~/.zshrc, or ~/.profile file, depending on your shell.

Package Management Scripts

For every package management system, scripts need to be written and placed in the ./scripts folder. These scripts should handle the staging and publishing processes.

Staging Files

Files need to be added to the publish folder using the staging script. Any additional files to be included in the package should be placed in the src folder in a subfolder named according to the conventions found in the lib folder for each language abbreviation.

Publishing Packages

If package to be deployed needs files in addition to those generated by the flatc compiler, place them in the src directory under the appropriate language directory using the conventions found in the lib folder, creating one if it does not currenly exist. The build script can use the files from the src folder to augment the package to be published.

Contribution Process

  1. Fork the repository and create your branch from main.
  2. If you've added code that should be tested, add tests.
  3. Ensure the test suite passes.
  4. If you've changed APIs, update the documentation.
  5. Add your contact information as a contributor to the 'package.json', if not already there.
  6. Submit a pull request.

Licensing

This library is licensed under the Apache 2.0 license. All contributions must be licensed the same way. By submitting a pull request, you acknowledge and agree that all your code is licensed under Apache 2.0, and you guarantee that you have the legal permission to submit the code.