ever-co / ever-co/feature-requests

[ever-traduora] Rename default branch from master to main

Open
#74 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
11
Forks
1
PR merge metrics
No merged PRs in 30d

Description

## **Executive Summary**

The ever-traduora repository currently utilizes master as its primary branch for release and integration. To adhere to contemporary industry standards and default configurations established by GitHub, it is proposed to migrate the primary branch nomenclature from master to main. This transition aims to improve professional alignment and facilitate a more intuitive environment for new contributors.

## **Proposed Technical Modifications**

### **1\. Repository Configuration and Governance**

* **Renaming:** Execute the formal renaming of the master branch to main within the GitHub administrative interface.
* **Default Branch Designation:** Update the repository settings to establish main as the default branch.
* **Policy Migration:** Ensure that all established Branch Protection Rules—including status checks, commit signing requirements, and mandatory peer review protocols—are accurately transferred from master to main.

### **2\. CI/CD Pipeline Integration (CircleCI)**

**Target File:** .circleci/config.yml

* **Release Workflows:** Modify branch filters to ensure that release processes target main (formerly master).
* **Test Workflows:** Adjust exclusion criteria to properly ignore the new main branch during specific testing cycles.
* **Risk Mitigation:** It is recommended to implement temporary support for both branch names during the transition phase to maintain continuous integration stability.

### **3\. Release Automation Framework (semantic-release)**

**Target File:** package.json or .releaserc

* **Validation:** Verify the compatibility of the semantic-release configuration with the main branch. Should explicit definitions be absent, the configuration must be amended as follows to ensure consistent automated versioning:
"release": {
"branches": \["main", "develop"\]
}

### **4\. Documentation and Hyperlink Integrity**

Conduct a comprehensive audit and update of all hardcoded references to the master branch across the following assets:

* **README.md:** Update licensing badges, Codecov reporting URLs, and installation source pointers.
* **docs/contributing.md:** Revise procedural guidelines regarding feature integration and merge protocols.
* **docs/faq.md:** Rectify external documentation references.
* **Network Assets:** Identify and update any hardcoded raw.githubusercontent.com endpoints.

## **Procedural Implementation (Operational Sequence)**

To ensure a seamless transition and prevent the disruption of build or deployment pipelines, the following sequence of operations shall be observed:

1. **Audit Phase:** Conduct a thorough identification of all internal and external dependencies (e.g., Webhooks, Docker registries) that rely on the master branch.
2. **Infrastructure Preparation:** Submit a pull request to the develop branch updating the CircleCI configuration to accommodate both master and main identifiers concurrently.
3. **Execution:** Perform the formal branch renaming via the GitHub user interface.
4. **Integration:** Consolidate documentation and configuration updates into the newly established main branch.
5. **Finalization:** Terminate temporary dual-branch support within the CI environment once stability is verified.

## **Guidelines for Contributors**

Upon completion of the migration, contributors are advised to synchronize their local environments by executing the following standardized Git procedures:

\# Transition to the legacy branch and rename locally
git checkout master
git branch \-m master main

\# Synchronize with the remote origin and re-establish tracking
git fetch origin
git branch \-u origin/main main

\# Re-align the remote symbolic reference
git remote set-head origin \-a

## **Additional Contextual Information**

* The repository maintains a bifurcated structure: develop serves as the environment for active development, while main (formerly master) is reserved exclusively for stable, production-ready releases.
* While GitHub facilitates automatic redirection for web-based requests, programmatic consumers (APIs) and local development environments require the manual updates delineated above to maintain operational continuity.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.