From ffd6b928b70103227d81938a65e4ccf68f6b3ecd Mon Sep 17 00:00:00 2001 From: Aleksandar Mitrovic Date: Wed, 19 Feb 2025 10:05:47 +0100 Subject: [PATCH 1/3] Initial commit --- .github/.DS_Store | Bin 0 -> 6148 bytes .github/ISSUE_TEMPLATE/bug_report.md | 33 ++++++ .github/ISSUE_TEMPLATE/config.yml | 18 +++ .github/ISSUE_TEMPLATE/documentation.md | 37 ++++++ .github/ISSUE_TEMPLATE/feature_request.md | 36 ++++++ .github/pull_request_template.md | 52 +++++++++ CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++ CONTRIBUTING.md | 95 ++++++++++++++++ GOVERNANCE.md | 133 ++++++++++++++++++++++ ROADMAP.md | 99 ++++++++++++++++ SECURITY.md | 90 +++++++++++++++ SUPPORT.md | 70 ++++++++++++ rfcs/.DS_Store | Bin 0 -> 6148 bytes rfcs/0000-example/rfc.md | 35 ++++++ rfcs/README.md | 77 +++++++++++++ sigs/.DS_Store | Bin 0 -> 6148 bytes sigs/README.md | 111 ++++++++++++++++++ 17 files changed, 1014 insertions(+) create mode 100644 .github/.DS_Store create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/documentation.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/pull_request_template.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 GOVERNANCE.md create mode 100644 ROADMAP.md create mode 100644 SECURITY.md create mode 100644 SUPPORT.md create mode 100644 rfcs/.DS_Store create mode 100644 rfcs/0000-example/rfc.md create mode 100644 rfcs/README.md create mode 100644 sigs/.DS_Store create mode 100644 sigs/README.md diff --git a/.github/.DS_Store b/.github/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e892d377ebe3744d919322056b3ca5f52322805c GIT binary patch literal 6148 zcmeHK%}N6?5T3NvZYfF+3VI88Ex5K)5HD+O4}yZYRSzn)ON%b9o6;Y9D22W23;7~G zk26WCl&Tj&q|B7bH<`>NT%g`T4hO=v(J zPT+JdnjQa<0Xn-?I07Gk=Xi3T=XVSTbe6%W-wh%aVBBlajl%xGb>BoPompDWI$0<0 z-1zruG?$SXUm{)FUdgkEG7oggTfyIng(u|fj?#79S%E9mjD0& literal 0 HcmV?d00001 diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..ce926f5c2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: '[BUG] ' +labels: bug +assignees: '' +--- + +## Bug Description + + +## Steps to Reproduce +1. +2. +3. + +## Expected Behavior + + +## Actual Behavior + + +## Environment +- Semaphore Version: +- OS/Platform: +- Browser (if applicable): +- Other relevant software versions: + +## Additional Context + + +## Possible Solution + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..3d3de2659 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,18 @@ +blank_issues_enabled: false +contact_links: + +name: Security Vulnerability +url: https://semaphoreci.com/security +about: Please report security vulnerabilities through our security page +name: Community Support +url: https://github.com/semaphoreci/semaphore/discussions +about: Ask and answer questions in our community discussions +name: Enterprise Support +url: https://semaphoreci.com/support +about: Enterprise customers can get dedicated support here +name: Documentation +url: https://docs.semaphoreci.com +about: Check our documentation for answers to common questions +name: Feature Request Guidelines +url: https://github.com/semaphoreci/semaphore/blob/main/CONTRIBUTING.md#feature-requests +about: Please read our guidelines before submitting a feature request \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 000000000..e34cbec84 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -0,0 +1,37 @@ +--- +name: Documentation +about: Report documentation issues or suggest improvements +title: '[DOCS] ' +labels: documentation +assignees: '' +--- + +## Documentation Location + + +## Type of Documentation Issue + +- [ ] Missing documentation +- [ ] Incorrect information +- [ ] Unclear explanation +- [ ] Outdated content +- [ ] Broken link +- [ ] Code example needs update +- [ ] Other (please describe) + +## Current State + + +## Requested Changes + + +## Suggested Content + + +## Additional Information + + +## Affects Version + +- [ ] Latest (main branch) +- [ ] Previous versions (specify): \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..b3722ff23 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,36 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '[FEATURE] ' +labels: enhancement +assignees: '' +--- + +## Problem Statement + + +## Proposed Solution + + +## Alternative Solutions + + +## User Impact + + +## Implementation Considerations + + +## Additional Context + + +## Community Edition / Enterprise Edition + +- Community Edition +- Enterprise Edition + +## Acceptance Criteria + +- [ ] +- [ ] +- [ ] \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..8cb2a37cf --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,52 @@ +## Description + + +## Type of Change + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to change) +- [ ] Documentation update +- [ ] Performance improvement +- [ ] Code refactoring +- [ ] Enterprise Edition feature +- [ ] Test updates + +## Impact + +### Community Edition Impact + + +### Enterprise Edition Impact + + +## Testing + +- [ ] Unit tests added/updated +- [ ] Integration tests added/updated +- [ ] Manual testing performed +- [ ] Not applicable + +## Documentation + +- [ ] Documentation update required +- [ ] Documentation updated +- [ ] No documentation changes needed + +## Related Issues + +- Closes +- Related to + +## Checklist + +- [ ] Code follows project style guidelines +- [ ] Self review performed +- [ ] Comments added to hard-to-understand areas +- [ ] Tests prove change is effective +- [ ] Relevant documentation updated +- [ ] Changelog updated if needed +- [ ] CI/CD changes required + +## Additional Notes + \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..1dbf26932 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +support@semaphoreci.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..423bd63b0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,95 @@ +# Contributing to Semaphore + +Thank you for your interest in contributing to Semaphore! This document provides guidelines and information for contributors. + +## Table of Contents +- [Code of Conduct](#code-of-conduct) +- [Getting Started](#getting-started) +- [Repository Structure](#repository-structure) +- [Development Process](#development-process) +- [Submitting Changes](#submitting-changes) +- [Community](#community) + +## Code of Conduct + +By participating in this project, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md). + +## Getting Started + +### Repository Structure +Our repository contains both open-source and enterprise code: +- Open-source code: All code outside the `ee/` directory (Apache 2.0 license) +- Enterprise code: All code within the `ee/` directory (proprietary license) + +Please ensure you're working in the appropriate directory based on the feature you're developing. + +## Development Process + +### 1. Finding Issues to Work On +- Check our issue tracker for open issues +- Look for issues tagged with `good-first-issue` or `help-wanted` +- Feel free to ask questions in the issue comments + +### 2. Making Changes +1. Fork the repository +2. Create a new branch from `main`: + ``` + git checkout -b feature/your-feature-name + ``` +3. Make your changes +4. Write or update tests as needed +5. Ensure all tests pass locally + +### 3. Code Style +Our codebase follows these principles: +- Keep code simple and readable +- Add comments for complex logic +- Follow existing patterns in the codebase +- Document public APIs + +## Submitting Changes + +### Pull Request Process +1. Update relevant documentation +2. Add an entry to CHANGELOG.md if applicable +3. Ensure your PR includes only related changes +4. Fill out the PR template completely +5. Request review from maintainers + +### PR Requirements +- Clear, descriptive title +- Reference related issues +- Test coverage for new features +- Updated documentation +- Clean commit history + +### Review Process +1. Maintainers will review your code +2. Address any requested changes +3. Once approved, maintainers will merge your PR + +## Community + +### Getting Help +- GitHub Discussions: Technical questions and feature discussions +- Issue Tracker: Bug reports and feature requests +- [Community Chat]: Quick questions and community discussions + +### Communication Tips +- Be clear and concise +- Provide context for your questions +- Be patient with responses +- Help others when you can + +## Additional Resources +- [Documentation](docs-link) +- [Development Setup Guide](development-guide-link) +- [API Reference](api-reference-link) + +## Recognition +Contributors are recognized in: +- Release notes +- Contributors list +- Project documentation + +Thank you for contributing to Semaphore! \ No newline at end of file diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 000000000..0f074d16e --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,133 @@ +# Project Governance + +This document outlines how the Semaphore project is governed. + +## Overview + +Semaphore follows a governance model that balances commercial stewardship with community participation. The project is primarily maintained by Semaphore (the company) while encouraging active community involvement. + +## Roles and Responsibilities + +### Project Owner (Semaphore) + +- Sets project vision and roadmap +- Makes final decisions on features +- Manages security response team +- Controls release process +- Manages maintainer appointments + +### Core Maintainers + +- Review and merge pull requests +- Triage issues and pull requests +- Guide architectural decisions +- Mentor contributors +- Help enforce code of conduct + +### Community Contributors + +- Submit pull requests +- Report bugs +- Suggest features +- Help other users +- Improve documentation + +## Decision Making Process + +### Technical Decisions + +1. **Discussion Phase** + - Open GitHub Discussion or Issue + - Community feedback period + - Technical design review + +2. **Implementation Phase** + - Pull Request submission + - Code review + - Testing and validation + +3. **Final Review** + - Maintainer approval + - Company review for strategic alignment + - Merge decision + +### Feature Decisions + +1. **Community Edition** + - Community proposals welcome + - Discussed openly + - Must align with project goals + - Final decision by maintainers + +2. **Enterprise Edition** + - Company-driven roadmap + - Customer feedback prioritized + - Community input considered + - Final decision by Semaphore + +## Becoming a Maintainer + +### Requirements + +- Consistent contribution history +- Deep understanding of the project +- Good standing in community +- Commitment to project's success + +### Process + +1. Nomination by existing maintainer +2. Review of contribution history +3. Discussion among current maintainers +4. Trial period (3 months) +5. Final approval by Project Owner + +## Communication + +### Official Channels + +- GitHub Issues and Discussions +- [Project Documentation](https://docs.semaphoreci.com/CE/getting-started/about-semaphore) +- [Discord Server](https://discord.com/channels/1097422014735732746/1097434200438755369) + +### Decision Visibility + +- Technical decisions documented in issues/PRs +- Architecture decisions documented in [RFCs](../rfcs/README.md) +- Roadmap publicly available + +## Code of Conduct + +All participants must follow our [Code of Conduct](CODE_OF_CONDUCT.md). + +## Commercial and Community Balance + +### Open Source Commitment + +- Core functionality remains open source +- Community features reviewed fairly +- Transparent decision making +- Open development process + +### Enterprise Considerations + +- Enterprise features in `ee/` directory +- Clear feature distinction +- Commercial viability maintained +- Customer needs balanced with community + +## Changes to Governance + +1. Propose changes via GitHub Discussion +2. 2-week comment period +3. Maintainer review +4. Project Owner approval +5. Document update + +## Project Resources + +- [Contributing Guide](CONTRIBUTING.md) +- [Support](SUPPORT.md) +- [Security](SECURITY.md) +- [Code of Conduct](CODE_OF_CONDUCT.md) +- [Roadmap](ROADMAP.md) \ No newline at end of file diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 000000000..153ea47b3 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,99 @@ +# Project Roadmap + +This document outlines the roadmap for Semaphore. While we strive to adhere to this roadmap, it may evolve based on community feedback and changing requirements. + +## Current Status (Q1 2025) + +### Community Edition + +- Current stable version: X.Y.Z +- Active development version: X.Y+1.Z +- Supported versions: X.Y.Z, X.Y-1.Z + +### Enterprise Edition + +Enterprise Edition is currently in development and will be released in Q3 2025. + +## Short-term Goals (Next 3-6 Months) + +### Core Platform + +- [ ] Reduced resource requirements for CE +- [ ] Admin pannel interface +- [ ] Quality of life improvements (TBD) + +### Developer Experience + +- [ ] Streamlined local development setup +- [ ] Developer documentation +- [ ] Contribution guidelines improvements + +### Integration & Extensibility + +- [ ] New API roll out +- [ ] Extended and improved list of starter templates + +## Community Edition Priorities + +### Areas of Focus + +- Core pipeline performance +- Developer experience +- Community tooling +- Documentation improvements + +## Enterprise Edition Focus + +### Upcoming Features + +1. Supporting all the features available on SaaS - Q2 2025 +2. Releasing the v1.0 Enterprise Edition - Q3 2025 + +### Priority Areas + +- Advanced security features +- Enterprise scaling +- Compliance and reporting +- Advanced management tools + +## Contribution Opportunities + +We welcome community contributions in these areas: + +- Documentation improvements +- [Help Wanted issues](https://github.com/semaphoreio/semaphore/labels/help%20wanted) +- Testing and quality assurance +- Performance optimizations + +## Decision Making + +Roadmap decisions are made based on: + +- Community feedback +- Customer needs +- Market trends +- Technical requirements +- Resource availability + +## Providing Feedback + +We encourage feedback on our roadmap: + +1. GitHub Discussions for general feedback +2. Issue tracker for specific features +3. Regular community meetings +4. Direct communication for enterprise customers + +## Updates & Changes + +This roadmap will be updated: + +- Quarterly for major revisions +- Monthly for status updates +- As needed for significant changes + +Last updated: [Date] + +--- + +Note: This roadmap is for informational purposes only and may change without notice based on business and community needs. \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..dff0b8f21 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,90 @@ +# Security Policy + +## Reporting a Security Vulnerability + +At Semaphore, we take security seriously. If you believe you have found a security vulnerability, please report it to us as described below. + +### How to Report + +Please send reports about any security related issues you find to: +**security@semaphoreci.com** + +Please provide as much information as possible, including: + +- A detailed description of the vulnerability +- Steps to reproduce the issue +- Potential impact of the vulnerability +- Any possible mitigations you've identified + +### Response Process + +1. We will acknowledge receipt of your vulnerability report within 3 business day +2. We will provide a more detailed response within 5 business days + - This will include our assessment of the vulnerability + - An expected timeline for a fix +3. We will keep you informed about our progress +4. Once the vulnerability is fixed, we will notify you + +## Scope + +### What to Report + +- Vulnerabilities in the open-source Semaphore codebase (outside of `ee/` directory) +- Security issues in our documentation +- Vulnerabilities in our public infrastructure +- Authentication and authorization flaws +- Data exposure risks + +### Out of Scope + +- Vulnerabilities in Enterprise Edition code (`ee/` directory) - please report through your enterprise support channel +- Social engineering attacks +- DOS/DDOS attempts +- Issues requiring physical access +- Issues in third-party applications or websites + +## Security Best Practices + +### For Contributors + +1. Always follow secure coding guidelines +2. Never commit sensitive information (tokens, passwords, keys) +3. Keep dependencies up to date +4. Write tests for security-critical code +5. Document security-relevant configuration + +### For Users + +1. Keep your installation up to date +2. Regularly audit access controls +3. Enable all recommended security features +4. Monitor security announcements + +## Security Update Process + +1. Security patches are given the highest priority +2. Critical vulnerabilities are patched as soon as possible +3. Security updates are clearly marked in release notes +4. When possible, patches are backported to supported versions +5. Users are notified through our security announcement channels + +## Public Disclosure Process + +- We follow responsible disclosure principles +- Public disclosure is coordinated with the reporter +- Standard disclosure timeline is 90 days +- Timeline may be adjusted based on severity and mitigation complexity + +## Security Announcements + +Stay informed about security updates: + +- Follow our security announcements on [discord](https://discord.com/channels/1097422014735732746/1097434200438755369) +- Follow the announcements on our [website](https://semaphoreci.com/category/semaphore-news) + +## Attribution + +We believe in acknowledging security researchers who help us improve our security. Unless you prefer to remain anonymous, we will acknowledge your contribution in: + +- Our security advisories +- Release notes \ No newline at end of file diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 000000000..64040ce52 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,70 @@ +# Getting Support + +This document outlines the various support channels available for Semaphore. + +## Community Support + +### GitHub Discussions + +For general questions, best practices, and community discussions: +- Visit our [GitHub Discussions](https://github.com/semaphoreio/semaphore/discussions) +- Search existing discussions before creating a new one +- Use appropriate category tags + +### Discord & Documentation + +- [Official Documentation](https://docs.semaphoreci.com) +- [Discord server](https://discord.com/channels/1097422014735732746/1097434200438755369) + +### Bug Reports & Feature Requests + +- Bug Reports: Use our [bug report template](https://github.com/semaphoreci/semaphore/issues/new?template=bug_report.md) +- Feature Requests: Use our [feature request template](https://github.com/semaphoreci/semaphore/issues/new?template=feature_request.md) +- Documentation Issues: Use our [documentation template](https://github.com/semaphoreci/semaphore/issues/new?template=documentation.md) + +## Enterprise and SaaS Support + +### Dedicated Support + +Enterprise and SaaS customers have access to: + +- Priority email support +- SLA-backed response times +- Direct access to support engineers +- Private security reporting +- Custom feature development consultation + +Contact enterprise support at: support@semaphoreci.com + +### Security Issues + +For security-related issues: + +- Review our [Security Policy](SECURITY.md) + +## Support Channels Overview + +| Channel | Purpose | Response Time | Access | +|---------|---------|---------------|---------| +| GitHub Discussions | Community help | Best effort | Everyone | +| Issue Tracker | Bugs & features | Best effort | Everyone | +| Email Support | Enterprise/SaaS issues | plan dependant | Enterprise and SaaS customers | +| Security Reports | Security issues | 3 days max | Everyone | + +## Best Practices for Getting Help + +1. **Search First** + - Check existing discussions and issues + - Review documentation + - Look for similar problems + +2. **Provide Context** + - Your environment details + - Steps to reproduce + - Relevant logs and errors + - Code examples if applicable + +3. **Be Respectful** + - Follow our [Code of Conduct](CODE_OF_CONDUCT.md) + - Be patient with community responses + - Help others when you can \ No newline at end of file diff --git a/rfcs/.DS_Store b/rfcs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f056603bab8086646935d4cae672828ec9137bba GIT binary patch literal 6148 zcmeHK%}T>S5Z-O8-B5%a6vWel*A|nC^x!4b`T|Dupi&c3G#Im`Kju&hc>sMOAH?Tz zW_PQU+KUH~G81OM+1Z&a`)%0CGRAm!n)r;lj4=UV$n`r~EMh~J zvKD(;i6+N?WB~WB!94x=uy5b{*N%(vFwRsA5%2LZOUDz>`{0#oZEL$O>Y^d;!beqv zlV~y>ccak__AZsm;)NZ>SLvYWySry9pG0Xs80myG89>PGb($xt=&EU+jCF2k281J= zzI!m6wLQPxl>V_dZ_1hPophSA)A8nWN9-LQonG{xvgcgA8d5oYe_D1dF5nG}HS2o` zM|r052Z&f?FR}=U0b+m{*lY&usV5qny-ZpiF+dFbf&n}qBq(BFu{5ZU4ruWA5yxwY zC}87V0#RBFES3gg1caMZK$FVt6@!~}@JkyPSS$^ibjJ0}@E$uew>K27X9vI3;fx0c zsU-%8fn^4&rt4z;KVN_UUrwSPF+dD#6a&203wvEylC7;Pi^EzgLGM9PFs?NCl>&w? h#Sn|7cpp>?_$3;EfyL4wctGe!K+`}CG4Q7hd;$wWOI!c| literal 0 HcmV?d00001 diff --git a/rfcs/0000-example/rfc.md b/rfcs/0000-example/rfc.md new file mode 100644 index 000000000..5f4f04622 --- /dev/null +++ b/rfcs/0000-example/rfc.md @@ -0,0 +1,35 @@ +# Title + +[RFC 0000 - short descriptive name] + +## What + +[Provide a brief summary of the proposed change or feature. This should be a concise description of what is being proposed, giving readers a quick understanding of the RFC's purpose.] + +## Why + +[Explain the motivation behind this RFC. Describe the problem it aims to solve or the improvement it seeks to make. Include context about why this change is important and how it aligns with Semaphore's goals.] + +## Solution details + +[Provide a detailed description of the proposed solution. This section should be comprehensive, covering all aspects of the proposal. You may use the subsections below to organize your thoughts, but feel free to adjust as needed for your specific RFC.] + +### Functionality + +[Offer a detailed functionality specification explaining how the feature works. Include user interactions, system behaviors, and any new concepts introduced.] + +### Architecture + +[Describe the architectural changes or additions required to implement this proposal. Include diagrams if they would be helpful.] + +### UI/UX design + +[If applicable, provide proposals for UI patterns and design. Include mockups or wireframes if available.] + +## Open questions + +[List any unresolved issues, areas where you're seeking input, or aspects of the proposal that require further discussion. Frame these as questions to encourage specific feedback from collaborators.] + +- Question 1? +- Question 2? +- Question 3? \ No newline at end of file diff --git a/rfcs/README.md b/rfcs/README.md new file mode 100644 index 000000000..11f1ddd69 --- /dev/null +++ b/rfcs/README.md @@ -0,0 +1,77 @@ +# Semaphore RFCs (Requests for Comments) + +## Introduction + +This document outlines the RFC (Request for Comments) process for the Semaphore updates. It is a way for the Semaphore team to include the community and users in the discussion and design of future improvements. + +RFCs are design documents used to propose, describe, and discuss significant changes to Semaphore. The RFC process provides a structured way to gather input from the community and users before implementing major features or changes. + +## When should an RFC be created? + +An RFC should be created for any substantial change to Semaphore that would benefit from broader discussion and consensus. This includes, but is not limited to: + +- New features with significant impact on users or the architecture +- Major changes to existing features or APIs +- Introduction of new integrations with the Semaphore + +Not every change will be covered by an RFC. RFCs serve to efficiently gather improvement ideas from the community and validate existing proposals through community feedback. + +## How to create an RFC + +1. Fork the Semaphore repository. + +2. Create a new branch named `rfc/short-descriptive-title`. For example: `rfc/new-user-api`. + +3. Create a new subfolder in the `rfcs` directory with the format `0000-your-feature`. For example: `rfcs/0000-new-user-api/`. + +4. Copy the RFC template from `rfcs/0000-example/rfc.md` to your new subfolder, naming it `rfc.md`. + +5. Fill in the RFC template with your proposal. Be as detailed as possible, including motivation, design details, alternatives considered, and potential drawbacks. + +6. Submit a pull request to the Semaphore repository with your RFC. + +7. Update the front matter of your RFC: + - Assign yourself as the author + - Set the status to "Draft" + - Leave the RFC number as 0000 (it will be assigned later) + +8. The pull request description should include a brief summary of the RFC and any additional context that might be helpful for reviewers. + +## How are RFCs reviewed? + +1. Once submitted, Semaphore team will assign a number to the RFC and update the folder name accordingly. + +2. The community and Semaphore team will review the RFC, asking questions and providing feedback through pull request comments. + +3. You should be prepared to revise your RFC based on the feedback received. Push your changes to the same branch to update the pull request. + +4. RFCs must remain in the "Draft" status for a minimum of **two weeks** to allow sufficient time for review and discussion. + +5. After the review period, Semaphore team will decide to either: + - Accept the RFC and merge the pull request + - Request further changes + - Decline the RFC and close the pull request + +6. Accepted RFCs will have their status updated to "Accepted" before merging and a number assigned. + +## Implementation + +Once an RFC is accepted: + +1. Create a new issue in the Semaphore repository to track the implementation progress, linking back to the RFC. + +2. The issue is to be used only to communicate the progress to community and users. + +3. Once the implementation is complete and merged, Semaphore team will update the RFC's status to "Implemented" and move it to the `archive` folder. + +## End of life + +As Semaphore evolves, some RFCs may become obsolete or be superseded by newer proposals. In such cases: + +1. Create a pull request to update the RFC's status to "Deprecated" and move it to the `archive` folder. + +2. In the PR, provide a brief explanation of why the RFC is being deprecated and, if applicable, link to any new RFCs or documentation that replace it. + +3. Once approved and merged, the RFC will be clearly marked as deprecated but will remain in the repository for historical context. + +Remember, the RFC process is meant to be collaborative and iterative. Don't hesitate to ask for help or clarification throughout the process. Your contributions help shape the future of Semaphore! \ No newline at end of file diff --git a/sigs/.DS_Store b/sigs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f07502681604ff878747fe9eda5308cd013ab1d0 GIT binary patch literal 6148 zcmeHK%}N6?5T3NvZV{me1-&hJt=JzG#LH6a3%H^OmAcCoU0jpW-CCs-_O37Fi}*aw zB&k@c2M>zM3{1YsWG2~sS@Ht_qCJcn0962RPzehaEItrwC!Ldm^$-f(M*tEc*n}S3 z&qcH2H!?tLw+aFDA;xukzkV66qJ$LvA!>q}!9zGo`(dI&%z6&{Nt|Z&`im$OOACu- zr|c{_7yh*x`B{(+({?a8quQ}jNjSBG@Febyy495fC9@!wy@5`MqaKEwpT;s$qqZ8# zDAl>XX>ck|rCVJekDK*Iz2>%BJCm9_-fN=0-P)Z@D$eT0*8WlVCb^aB(eNzrm(;Rs zaSBgpd|}FW{y-*5USZa>$7xTD%m6dM4E#|B>~`iX{n78|&t?Xgf$w90_6HZ0(6g8u z)LRD@bbX}u5+MoN^p+rWEqWGngV=&1Oe&&D750fCOgj2q8|PWf4VrWidSvX!jx6j8 zMd;Dd@9J<6oHI(Z{QWOV literal 0 HcmV?d00001 diff --git a/sigs/README.md b/sigs/README.md new file mode 100644 index 000000000..e751fe5c9 --- /dev/null +++ b/sigs/README.md @@ -0,0 +1,111 @@ +# Semaphore Special Interest Groups (SIGs) + +## Introduction + +Special Interest Groups (SIGs) are designed to foster collaboration between the Semaphore team, community members, and users. The primary purpose of SIGs is to: + +1. Enable community members and users to actively participate in the Semaphore design +2. Provide a platform for sharing experiences and use-cases +3. Allow participants to help shape specific product areas +4. Influence the development and direction of these product areas + +By joining a SIG, you have the opportunity to contribute your expertise, insights, and real-world experiences to help improve Semaphore. Whether you're a long-time user, a new community member, or someone with a unique perspective on a particular aspect of Semaphore, your input is valuable in driving it forward. + +SIGs serve as a bridge between the core Semaphore team and the wider community, ensuring that development is aligned with user needs and industry trends. + +## Current SIGs + +Semaphore currently has several active Special Interest Groups, each focusing on a specific area of the product. These SIGs are open for anyone to join and contribute to with the approval of sig owner. Below is a list of our current SIGs, their purposes, owners, and links to their respective spaces. + +| Name | Purpose | Maintainers | Link to SIG Space | +|------|---------|--------|-------------------| +| SIG-Documentation | Ensures comprehensive and up-to-date Semaphore documentation | @TomFern | [SIG-Documentation Space](https://github.com/semaphoreci/semaphore/tree/main/docs) | +| SIG-Roadmap | Ensures up-to-date Semaphore roadmap, reviews and shares roadmap updates | @AleksandarCole | [SIG-Roadmap Space](../ROADMAP.md) | + +Each SIG meets regularly to discuss ongoing projects, address challenges, and plan future developments. We encourage you to explore these SIGs and join the ones that align with your interests or expertise. + +### Future SIGs + +As Semaphore continues to grow and evolve, we plan to expand our range of Special Interest Groups. + +Here are some SIGs we're planning to establish in the near future: + +- **SIG-API and extensibility**: This group will focus on enhancing Semaphore's API and extensibility, working to integrate with third-party tools and platforms. +- **SIG-Development**: This group will focus on enhancing Semaphore's development process, working to streamline and optimize the onboarding of new contributors. +- **SIG-Agents**: This group will focus on Semaphore self-hosted agents, working to improve their functionality, performance, and user experience. +- **SIG-Tests**: Dedicated to enhancing Semaphore's test reporting capabilities, this group will work on developing and refining test report parsers for various technology stacks. + +If you're interested in these upcoming SIGs or have ideas for additional groups, we encourage you to reach out to the Semaphore team. + +## How SIGs Operate + +Special Interest Groups in Semaphore operate with a focus on collaboration, transparency, and community involvement. Here's an overview of how SIGs function: + +### Regular Meetings + +1. **Frequency**: SIGs typically meet on a regular schedule, often weekly or monthly. +2. **Format**: Meetings are usually held via video conference to accommodate global participation. +3. **Agenda**: Each meeting has a predefined agenda, which is shared in advance for input and preparation. +4. **Minutes**: Detailed minutes are taken and shared publicly to keep the wider community informed. + +### Communication Channels + +1. **Discord Channel**: Each SIG has a dedicated Discord channel for ongoing discussions and quick communications. +2. **GitHub Discussions**: For technical discussions and proposals, SIGs use GitHub Discussions within the Semaphore repository. +3. **RFCs**: For more in-depth collaboration on proposal, SIGs use [RFCs](../rfcs/README.md). + +### Decision Making + +1. **Consensus-based**: SIGs strive for consensus in decision-making. +2. **Ownership**: When consensus cannot be reached, final decisions are left at the discretion of SIG owner. +3. **Transparency**: All significant decisions are documented and shared with the broader community. + +### Deliverables + +1. **Proposals**: SIGs develop and refine proposals for new features or significant changes. +2. **Documentation**: SIGs are responsible for maintaining documentation related to their focus area. + +### Reporting + +1. **Regular Updates**: SIGs provide updates to the broader Semaphore community on their progress and plans. +2. **Annual Review**: Each SIG conducts an annual review of its activities, achievements, and future goals. + +### Community Engagement + +1. **Open Participation**: SIG meetings and discussions are open to all interested parties. +2. **Mentorship**: Experienced SIG members often mentor newcomers to help them contribute effectively. +3. **Cross-SIG Collaboration**: SIGs collaborate with each other on overlapping or interdependent initiatives. + +By operating in this structured yet flexible manner, SIGs can effectively drive progress in their focus areas while ensuring community involvement and transparency. This approach allows Semaphore to benefit from diverse perspectives and expertise, leading to better outcomes as a whole. + +## Joining a SIG + +Joining a Special Interest Group is a great way to contribute to Semaphore and collaborate with others who share your interests. Here's how you can get involved: + +1. **Choose a SIG**: + - Review the list of current SIGs in the [Current SIGs](#current-sigs) section above. + - Select a SIG that aligns with your interests or expertise. + +2. **Join the Communication Channels**: + - Join the SIG's Discord channel (listed in the SIG's space). + +3. **Attend a Meeting**: + - Check the SIG's calendar for upcoming meetings (found in the SIG's space). + - Attend a meeting as an observer to get a feel for the group's dynamics and current projects. + - Introduce yourself during the meeting when appropriate. + +4. **Review Current Work**: + - Look at the SIG's **Ongoing** section to understand ongoing work. + - Read through recent meeting minutes to catch up on discussions and decisions. + +5. **Start Contributing**: + - Participate in discussions on Discord or GitHub. + - Offer to help with documentation, code reviews, or testing. + +6. **Engage Regularly**: + - Attend meetings consistently to stay involved in discussions and decision-making. + - Contribute your ideas and feedback on ongoing projects. + +Remember, you're welcome to join multiple SIGs if you're interested in various aspects of Semaphore. Each SIG may have slightly different norms and processes, so don't hesitate to ask questions and seek guidance from more experienced members. + +If you're new to Semaphore, joining a SIG is an excellent way to learn and grow while making meaningful contributions. Welcome aboard! From b292aeee852e2fcef374d8c036953a47f6261eed Mon Sep 17 00:00:00 2001 From: Aleksandar Mitrovic Date: Wed, 19 Feb 2025 10:12:02 +0100 Subject: [PATCH 2/3] Removing excess files --- .github/.DS_Store | Bin 6148 -> 0 bytes rfcs/.DS_Store | Bin 6148 -> 0 bytes sigs/.DS_Store | Bin 6148 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/.DS_Store delete mode 100644 rfcs/.DS_Store delete mode 100644 sigs/.DS_Store diff --git a/.github/.DS_Store b/.github/.DS_Store deleted file mode 100644 index e892d377ebe3744d919322056b3ca5f52322805c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}N6?5T3NvZYfF+3VI88Ex5K)5HD+O4}yZYRSzn)ON%b9o6;Y9D22W23;7~G zk26WCl&Tj&q|B7bH<`>NT%g`T4hO=v(J zPT+JdnjQa<0Xn-?I07Gk=Xi3T=XVSTbe6%W-wh%aVBBlajl%xGb>BoPompDWI$0<0 z-1zruG?$SXUm{)FUdgkEG7oggTfyIng(u|fj?#79S%E9mjD0& diff --git a/rfcs/.DS_Store b/rfcs/.DS_Store deleted file mode 100644 index f056603bab8086646935d4cae672828ec9137bba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5Z-O8-B5%a6vWel*A|nC^x!4b`T|Dupi&c3G#Im`Kju&hc>sMOAH?Tz zW_PQU+KUH~G81OM+1Z&a`)%0CGRAm!n)r;lj4=UV$n`r~EMh~J zvKD(;i6+N?WB~WB!94x=uy5b{*N%(vFwRsA5%2LZOUDz>`{0#oZEL$O>Y^d;!beqv zlV~y>ccak__AZsm;)NZ>SLvYWySry9pG0Xs80myG89>PGb($xt=&EU+jCF2k281J= zzI!m6wLQPxl>V_dZ_1hPophSA)A8nWN9-LQonG{xvgcgA8d5oYe_D1dF5nG}HS2o` zM|r052Z&f?FR}=U0b+m{*lY&usV5qny-ZpiF+dFbf&n}qBq(BFu{5ZU4ruWA5yxwY zC}87V0#RBFES3gg1caMZK$FVt6@!~}@JkyPSS$^ibjJ0}@E$uew>K27X9vI3;fx0c zsU-%8fn^4&rt4z;KVN_UUrwSPF+dD#6a&203wvEylC7;Pi^EzgLGM9PFs?NCl>&w? h#Sn|7cpp>?_$3;EfyL4wctGe!K+`}CG4Q7hd;$wWOI!c| diff --git a/sigs/.DS_Store b/sigs/.DS_Store deleted file mode 100644 index f07502681604ff878747fe9eda5308cd013ab1d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}N6?5T3NvZV{me1-&hJt=JzG#LH6a3%H^OmAcCoU0jpW-CCs-_O37Fi}*aw zB&k@c2M>zM3{1YsWG2~sS@Ht_qCJcn0962RPzehaEItrwC!Ldm^$-f(M*tEc*n}S3 z&qcH2H!?tLw+aFDA;xukzkV66qJ$LvA!>q}!9zGo`(dI&%z6&{Nt|Z&`im$OOACu- zr|c{_7yh*x`B{(+({?a8quQ}jNjSBG@Febyy495fC9@!wy@5`MqaKEwpT;s$qqZ8# zDAl>XX>ck|rCVJekDK*Iz2>%BJCm9_-fN=0-P)Z@D$eT0*8WlVCb^aB(eNzrm(;Rs zaSBgpd|}FW{y-*5USZa>$7xTD%m6dM4E#|B>~`iX{n78|&t?Xgf$w90_6HZ0(6g8u z)LRD@bbX}u5+MoN^p+rWEqWGngV=&1Oe&&D750fCOgj2q8|PWf4VrWidSvX!jx6j8 zMd;Dd@9J<6oHI(Z{QWOV From 3cab0219d4abc9806904f105da7e06161142d683 Mon Sep 17 00:00:00 2001 From: Aleksandar Mitrovic Date: Wed, 19 Feb 2025 10:14:29 +0100 Subject: [PATCH 3/3] . --- .github/ISSUE_TEMPLATE/config.yml | 8 +------- CONTRIBUTING.md | 13 ++++++++----- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 3d3de2659..0f4355a09 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,15 +1,9 @@ blank_issues_enabled: false contact_links: -name: Security Vulnerability -url: https://semaphoreci.com/security -about: Please report security vulnerabilities through our security page name: Community Support -url: https://github.com/semaphoreci/semaphore/discussions +url: https://github.com/semaphoreio/semaphore/discussions about: Ask and answer questions in our community discussions -name: Enterprise Support -url: https://semaphoreci.com/support -about: Enterprise customers can get dedicated support here name: Documentation url: https://docs.semaphoreci.com about: Check our documentation for answers to common questions diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 423bd63b0..a67736642 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,6 +17,7 @@ By participating in this project, you are expected to uphold our [Code of Conduc ## Getting Started ### Repository Structure + Our repository contains both open-source and enterprise code: - Open-source code: All code outside the `ee/` directory (Apache 2.0 license) - Enterprise code: All code within the `ee/` directory (proprietary license) @@ -31,6 +32,7 @@ Please ensure you're working in the appropriate directory based on the feature y - Feel free to ask questions in the issue comments ### 2. Making Changes + 1. Fork the repository 2. Create a new branch from `main`: ``` @@ -41,6 +43,7 @@ Please ensure you're working in the appropriate directory based on the feature y 5. Ensure all tests pass locally ### 3. Code Style + Our codebase follows these principles: - Keep code simple and readable - Add comments for complex logic @@ -50,6 +53,7 @@ Our codebase follows these principles: ## Submitting Changes ### Pull Request Process + 1. Update relevant documentation 2. Add an entry to CHANGELOG.md if applicable 3. Ensure your PR includes only related changes @@ -64,6 +68,7 @@ Our codebase follows these principles: - Clean commit history ### Review Process + 1. Maintainers will review your code 2. Address any requested changes 3. Once approved, maintainers will merge your PR @@ -71,22 +76,20 @@ Our codebase follows these principles: ## Community ### Getting Help + - GitHub Discussions: Technical questions and feature discussions - Issue Tracker: Bug reports and feature requests - [Community Chat]: Quick questions and community discussions ### Communication Tips + - Be clear and concise - Provide context for your questions - Be patient with responses - Help others when you can -## Additional Resources -- [Documentation](docs-link) -- [Development Setup Guide](development-guide-link) -- [API Reference](api-reference-link) - ## Recognition + Contributors are recognized in: - Release notes - Contributors list