Skip to main content

Contributing Guide

Thank you for considering contributing to BFCI Components! This guide will help you get started.

Development Setupโ€‹

  1. Clone the repository:
git clone https://gitlab.bluefly.io / Blueflyio / internal - projects / llm / bfcicomponents.git
cd bfcicomponents
```text

2. Install dependencies:

```bash
npm install
```text

3. Run tests:

```bash
npm test
```text

## Creating New Components
1. Create a new component template in the `templates`directory:

```yaml

# templates / my - component.yml

name: my - component
description: A brief description of what your component does
version: 1.0.0
inputs:
- name: input_name
description: Description of the input
required: true
```text

2. Add tests for your component:

```javascript
// tests / components / my - component.test.js
describe('my - component', () = > {
it('should work correctly', () = > {
// Add your test cases
});
});
```text

3. Add documentation for your component in `docs / components / my - component.md`## Code Style

- Follow the existing code style
- Use ESLint and Prettier for formatting
- Write clear commit messages following conventional commits

## Testing
- Write unit tests for all new functionality
- Ensure all tests pass before submitting a merge request
- Include integration tests where appropriate

## Documentation
- Update documentation for any changes you make
- Follow the existing documentation style
- Include examples where appropriate

## Submitting Changes
1. Create a new branch:

```bash
git checkout -b feature / my - feature
```text

2. Make your changes and commit them:

```bash
git add .
git commit -m "feat: add new feature"
```text

3. Push your changes:

```bash
git push origin feature / my - feature
```text

4. Create a merge request on GitLab

## Code Review Process
1. All changes must be reviewed
2. Address any feedback from reviewers
3. Ensure CI pipeline passes
4. Keep your merge request up to date with main

## Release Process
1. Merge requests are automatically versioned using semantic - release
2. New versions are published to the component registry
3. Documentation is automatically updated

## Questions?
If you have questions, please:

1. Check the existing documentation
2. Search for existing issues
3. Create a new issue if needed