From dd7b658a1fe85fee078eb3b07ca758c33eee0144 Mon Sep 17 00:00:00 2001 From: ericbsd Date: Fri, 18 Jul 2025 23:42:33 -0300 Subject: [PATCH 1/3] Add GhostBSD versioning guide and src maintenance documentation - Add comprehensive GhostBSD Versioning Guide covering release numbering, version schemes, and release cycle management - Add maintaining GhostBSD src from FreeBSD src documentation with merge procedures and conflict resolution - Create maintenance-release/ section for release management documentation - Restructure contributor docs into logical sections: - code/ for development and setup - community/ for user support and engagement - documentation/ for writing and editing guides - maintenance-release/ for release and maintenance processes - Move existing files to new structure and update cross-references - Remove duplicate content (merged get-involved into getting-started) --- contributor/code/development-setup.md | 121 ++++++++ contributor/code/index.md | 35 +++ contributor/community/index.md | 5 + .../{ => community}/users-support-pl.md | 0 contributor/{ => community}/users-support.md | 2 +- .../getting-started-pl.md} | 0 .../getting-started.md} | 9 +- contributor/documentation/index.md | 7 + .../contributor-levels-pl.md | 0 .../contributor-levels.md | 0 .../ghostbsd-contributors-guide-pl.md | 0 .../ghostbsd-contributors-guide.md | 0 contributor/getting-started/index.md | 130 ++------ contributor/index.md | 8 +- contributor/maintenance-release/index.md | 18 ++ .../maintaining-ports-tree.md | 4 +- .../maintaining-src-tree.md | 282 ++++++++++++++++++ .../package-process.md | 0 .../maintenance-release/versioning-guide.md | 102 +++++++ contributor/ports/index.md | 6 - index.md | 7 +- 21 files changed, 602 insertions(+), 134 deletions(-) create mode 100644 contributor/code/development-setup.md create mode 100644 contributor/code/index.md create mode 100644 contributor/community/index.md rename contributor/{ => community}/users-support-pl.md (100%) rename contributor/{ => community}/users-support.md (98%) rename contributor/{documentation-pl.md => documentation/getting-started-pl.md} (100%) rename contributor/{documentation.md => documentation/getting-started.md} (55%) create mode 100644 contributor/documentation/index.md rename contributor/{ => getting-started}/contributor-levels-pl.md (100%) rename contributor/{ => getting-started}/contributor-levels.md (100%) rename contributor/{ => getting-started}/ghostbsd-contributors-guide-pl.md (100%) rename contributor/{ => getting-started}/ghostbsd-contributors-guide.md (100%) create mode 100644 contributor/maintenance-release/index.md rename contributor/{ports => maintenance-release}/maintaining-ports-tree.md (97%) create mode 100644 contributor/maintenance-release/maintaining-src-tree.md rename contributor/{ports => maintenance-release}/package-process.md (100%) create mode 100644 contributor/maintenance-release/versioning-guide.md delete mode 100644 contributor/ports/index.md diff --git a/contributor/code/development-setup.md b/contributor/code/development-setup.md new file mode 100644 index 0000000..ad995af --- /dev/null +++ b/contributor/code/development-setup.md @@ -0,0 +1,121 @@ +Getting Started +=============== + +## Requirements + +### Communication in English +Our developers hail from all over the globe, and English is the common language we use to collaborate. You don’t need to be fluent, but you should be comfortable enough to understand and communicate ideas effectively. + +If you're reading this, you're likely good to go! + +### Familiarity with Git +We use Git as our version control system to manage changes across all projects. It’s a cornerstone of our workflow, so understanding the basics is essential. + +If you're new to Git, take a moment to learn it before diving in. Check out the [GitHub Docs](https://docs.github.com/en/get-started/start-your-journey) for a solid introduction. Focus on concepts like commits, branches, remotes, and pull requests. + +### A GitHub Account +We host our repositories on GitHub, so you’ll need an account to browse code, fork projects, and submit pull requests. If you don’t have one yet, sign up at [GitHub](https://github.com/) and explore the [GitHub Docs](https://docs.github.com/) to get familiar with the platform. + +### Running GhostBSD +For the best experience, run the latest stable version of GhostBSD on your development machine. While older versions or FreeBSD might work, the latest GhostBSD ensures compatibility with our tools and libraries. + +You can download the latest ISO from the [GhostBSD website](https://www.ghostbsd.org/download) and install it on a physical machine or a virtual environment. + +## Technologies We Use +Here’s a quick rundown of the tools and languages you’ll encounter in GhostBSD development. + +### Programming Languages +GhostBSD projects use a mix of languages depending on the task. You don’t need to master them all—just focus on what’s relevant to your interests. + +#### Python +Most of our user-facing tools—like NetworkMgr, Update Station, and Software Station—are written in Python. It’s easy to learn, quick to develop with, and widely used in our ecosystem. + +#### C +The FreeBSD base system (which GhostBSD builds upon) and many libraries are written in C. It’s a low-level language that requires more effort to work with but delivers excellent performance and deep system access. + +#### Bourne Shell (sh) +Many scripts, including build tools like `ghostbsd-build` and utilities like `xconfig`, are written in Bourne shell script. It’s a lightweight way to automate tasks in the FreeBSD ecosystem. + +### GUI Toolkit and Libraries +Our graphical applications primarily use the [GTK3 toolkit](https://docs.gtk.org/gtk3/). We rely on GNOME libraries like GLib and GObject, often accessed through Python via [GObject Introspection](https://gi.readthedocs.io/). + +#### Configuration Tools +We use `dconf` for storing system configuration. You can interact with it via the `gsettings` command-line tool or the graphical `dconf-editor`. + +Install `dconf-editor` for a visual interface: + +```shell +sudo pkg install dconf-editor +``` + +## Setting Up Your Development Environment + + +Let's get your machine ready for GhostBSD development. + +### Install GhostBSD Base System Development Tools + +GhostBSD doesn’t come with base system development tools preinstalled. To enable compiling code and ports, install the `GhostBSD*-dev` packages. These include essential build tools, compilers, and libraries: + +```shell +sudo pkg install -g 'GhostBSD*-dev' +``` + +### Create a Development Directory +Organize your work in a dedicated directory. A common spot is your home directory: + +```shell +mkdir -p ~/projects/ghostbsd +```` + +Run cd `~/projects/ghostbsd` to jump in and start cloning repos. This keeps your repositories and files tidy. + +### Development Tools +#### Code Editors/IDEs +Pick an editor or IDE you like—there’s no wrong choice! Here are some favorites: + +* **PyCharm Community Edition:** Perfect for Python tools like NetworkMgr with built-in linting and debugging. + ```shell + sudo pkg install pycharm-ce + ``` +* `Visual Studio Code:` Lightweight and extensible, great for general-purpose coding. + ```shell + sudo pkg install vscode + ``` +* `Sublime Text:` Fast and minimalist with great plugin support. + ```shell + sudo pkg install linux-sublime-text4 + ``` +* `Neovim or Vim:` Lightweight for shell scripts or terminal fans. + ```shell + sudo pkg install neovim + ``` + +For Python development, PyCharm stands out with built-in linting. If using another editor, set up a Pylint plugin (e.g., via VS Code’s marketplace or Sublime’s Package Control) to catch issues early. Try one that fits your style! + +#### Version Control Tools +We use Git for version control. Beyond the command line, these graphical tools help: + +* **gitg:** A GTK-based interface to browse Git history. + ```shell + sudo pkg install gitg + cd ~/projects/ghostbsd + git clone https://github.com/ghostbsd/ghostbsd-ports.git + cd ghostbsd-ports + gitg + ``` +* **Sublime Merge:** A sleek Git client, pairs well with Sublime Text. + ```shell + sudo pkg install linux-sublime-merge + ``` + +Clone a repo first (e.g., `git clone https://github.com/ghostbsd/ghostbsd-ports.git`) to explore with these. Many editors also have Git plugins—check yours! + +### How to Contribute to GhostBSD + +We welcome all contributions! To get started, here's how to jump in: + +- **Check the Roadmap**: See our [releases roadmap](https://github.com/orgs/ghostbsd/projects/4) or [current sprint](https://github.com/orgs/ghostbsd/projects/4/views/22) for priorities. +- **Find a Task**: Browse the [issue tracker](https://github.com/orgs/ghostbsd/projects/4/views/21) for bugs or small features, or check [documentation tasks](https://github.com/orgs/ghostbsd/projects/5/views/1) for writing opportunities. +- **Submit Your Work**: Fork the repo, make changes, and send a pull request via GitHub. For docs, contribute to [ghostbsd/documentation](https://github.com/ghostbsd/documentation). +- **Join Us**: Hop into our [Telegram group](https://t.me/ghostbsd_dev) for guidance or to say hi and share what you're working on! \ No newline at end of file diff --git a/contributor/code/index.md b/contributor/code/index.md new file mode 100644 index 0000000..c843abe --- /dev/null +++ b/contributor/code/index.md @@ -0,0 +1,35 @@ +# Contributing Code + +Welcome to code contribution for GhostBSD! Whether you're interested in Python applications, C system tools, or shell scripts, this section will help you get set up and contributing. + +## What We Build + +GhostBSD development spans several areas: + +### User Applications (Python + GTK3) +Our desktop tools are built with Python and GTK3: +- **NetworkMgr** - Network connection management +- **Update Station** - System update interface +- **Software Station** - Package management GUI +- **System tools** - Various configuration utilities + +### System Components (C) +Lower-level system integration with FreeBSD base: +- **Kernel modules** - Hardware support and system features +- **System utilities** - Command-line tools and daemons +- **Libraries** - Shared code for applications + +### Build and Configuration (Shell) +Automation and system configuration: +- **ghostbsd-build** - ISO building system +- **Installation scripts** - System setup and configuration +- **Package building** - Port compilation and packaging + +## Getting Started with Code + +- [Development Environment Setup](development-setup) – Set up your development machine and tools +- [Python Development Guide](python-guide) – Contributing to our GTK3 applications +- [C Development Guide](c-guide) – Working with system components +- [Shell Scripting Guide](shell-guide) – Build tools and configuration scripts +- [Testing and QA](testing) – How to test your changes +- [Code Standards](standards) – Coding style and best practices \ No newline at end of file diff --git a/contributor/community/index.md b/contributor/community/index.md new file mode 100644 index 0000000..7c9a149 --- /dev/null +++ b/contributor/community/index.md @@ -0,0 +1,5 @@ +# Community Involvement + +Get involved in the GhostBSD community! Whether you're providing user support, participating in development discussions, or helping newcomers, community involvement is a valuable way to contribute to GhostBSD. + +- [Users Support](users-support.md) - Help other GhostBSD users by answering questions and providing support \ No newline at end of file diff --git a/contributor/users-support-pl.md b/contributor/community/users-support-pl.md similarity index 100% rename from contributor/users-support-pl.md rename to contributor/community/users-support-pl.md diff --git a/contributor/users-support.md b/contributor/community/users-support.md similarity index 98% rename from contributor/users-support.md rename to contributor/community/users-support.md index 55aec93..a8dfed7 100644 --- a/contributor/users-support.md +++ b/contributor/community/users-support.md @@ -1,4 +1,4 @@ -

Users Support

+# Users Support Helping other users is a great way to contribute back, and it helps developers to focus on working on GhostBSD bugs and new features. Anyone with reasonable Linux/BSD experience and English skills can help. diff --git a/contributor/documentation-pl.md b/contributor/documentation/getting-started-pl.md similarity index 100% rename from contributor/documentation-pl.md rename to contributor/documentation/getting-started-pl.md diff --git a/contributor/documentation.md b/contributor/documentation/getting-started.md similarity index 55% rename from contributor/documentation.md rename to contributor/documentation/getting-started.md index f546d19..ee45f3a 100644 --- a/contributor/documentation.md +++ b/contributor/documentation/getting-started.md @@ -1,7 +1,8 @@ -Documentation Contribution -========================== +# Getting Started with Documentation -Writing documentation is a great way to start improving GhostBSD user experience and you will be helping a lot of GhostBSD users to better understand their desktop and applications. Anyone with reasonable English skills and good knowledge of FreeBSD, GhostBSD or MATE can help. +Ready to contribute to GhostBSD documentation? This guide will help you get started with writing, editing, and improving our documentation to make GhostBSD more accessible to everyone. + +Writing documentation is a great way to start improving GhostBSD user experience, and you will be helping a lot of GhostBSD users to better understand their desktop and applications. Anyone with reasonable English skills and good knowledge of FreeBSD, GhostBSD or MATE can help. ## Communicating with the team @@ -14,7 +15,7 @@ Those three messaging platform are connected together. So whatever you use IRC, ## Getting the resources -In order to document GhostBSD projects, you will want to run a [recent GhostBSD build](https://www.ghostbsd.org/download#latest_builds), and to document third-party projects, you will also need a recent version of that program. We are use [Sphinx](https://www.sphinx-doc.org) with [MyST](https://myst-parser.readthedocs.io) to makes it easy to create our Documentation Hub. Any one that wants to help should start to be familiar with [Git](getting-started/getting-started.md#knowing-how-to-use-git), [GitHub](getting-started/getting-started.md#knowing-how-to-use-github) and [MyST Markdown syntax](https://myst-parser.readthedocs.io/en/latest/intro.html). +To document GhostBSD projects, you will want to run a [recent GhostBSD build](https://www.ghostbsd.org/download#latest_builds), and to document third-party projects, you will also need a recent version of that program. We are use [Sphinx](https://www.sphinx-doc.org) with [MyST](https://myst-parser.readthedocs.io) to makes it easy to create our Documentation Hub. Any one that wants to help should start to be familiar with [Git](getting-started/getting-started.md#knowing-how-to-use-git), [GitHub](getting-started/getting-started.md#knowing-how-to-use-github) and [MyST Markdown syntax](https://myst-parser.readthedocs.io/en/latest/intro.html). The instructions for install and setup can be found on the [GhostBSD Documentation GitHub](https://github.com/ghostbsd/documentation#local-development-server) repository. diff --git a/contributor/documentation/index.md b/contributor/documentation/index.md new file mode 100644 index 0000000..1ee8ebf --- /dev/null +++ b/contributor/documentation/index.md @@ -0,0 +1,7 @@ +# Contributing Documentation + +Welcome to the GhostBSD documentation contribution guide! Help us improve and expand our documentation to make GhostBSD more accessible to users and contributors. + +- [Getting Started with Documentation](getting-started.md) - Learn how to contribute to GhostBSD documentation + +This section covers the complete process of writing, editing, and maintaining GhostBSD documentation, from initial setup through publication. \ No newline at end of file diff --git a/contributor/contributor-levels-pl.md b/contributor/getting-started/contributor-levels-pl.md similarity index 100% rename from contributor/contributor-levels-pl.md rename to contributor/getting-started/contributor-levels-pl.md diff --git a/contributor/contributor-levels.md b/contributor/getting-started/contributor-levels.md similarity index 100% rename from contributor/contributor-levels.md rename to contributor/getting-started/contributor-levels.md diff --git a/contributor/ghostbsd-contributors-guide-pl.md b/contributor/getting-started/ghostbsd-contributors-guide-pl.md similarity index 100% rename from contributor/ghostbsd-contributors-guide-pl.md rename to contributor/getting-started/ghostbsd-contributors-guide-pl.md diff --git a/contributor/ghostbsd-contributors-guide.md b/contributor/getting-started/ghostbsd-contributors-guide.md similarity index 100% rename from contributor/ghostbsd-contributors-guide.md rename to contributor/getting-started/ghostbsd-contributors-guide.md diff --git a/contributor/getting-started/index.md b/contributor/getting-started/index.md index ad995af..eeb0353 100644 --- a/contributor/getting-started/index.md +++ b/contributor/getting-started/index.md @@ -1,121 +1,25 @@ -Getting Started -=============== +# Getting Started -## Requirements +Welcome to the GhostBSD contributor community! Whether you're a developer, designer, writer, translator, or just want to help users, there's a place for you here. -### Communication in English -Our developers hail from all over the globe, and English is the common language we use to collaborate. You don’t need to be fluent, but you should be comfortable enough to understand and communicate ideas effectively. +## Ways to Contribute -If you're reading this, you're likely good to go! +### 🔧 Development & Technical +- **[Code Contribution](../code/index)** – Develop applications, system tools, and build scripts +- **[Maintenance & Release](../maintenance-release/index)** – Help maintain ports, packages, and releases -### Familiarity with Git -We use Git as our version control system to manage changes across all projects. It’s a cornerstone of our workflow, so understanding the basics is essential. +### 📝 Content & Community +- **[Documentation](../documentation/index)** – Write and improve user and developer documentation +- **[Translations](../translations/index)** – Help translate GhostBSD into more languages +- **[Community Support](../community/index)** – Help users and grow our community -If you're new to Git, take a moment to learn it before diving in. Check out the [GitHub Docs](https://docs.github.com/en/get-started/start-your-journey) for a solid introduction. Focus on concepts like commits, branches, remotes, and pull requests. +## Essential Information -### A GitHub Account -We host our repositories on GitHub, so you’ll need an account to browse code, fork projects, and submit pull requests. If you don’t have one yet, sign up at [GitHub](https://github.com/) and explore the [GitHub Docs](https://docs.github.com/) to get familiar with the platform. +- **[Contributors Guide](ghostbsd-contributors-guide)** – Essential information for all contributors +- **[Contributor Levels](contributor-levels)** – Understanding project roles from New Contributors to Project Leader -### Running GhostBSD -For the best experience, run the latest stable version of GhostBSD on your development machine. While older versions or FreeBSD might work, the latest GhostBSD ensures compatibility with our tools and libraries. +## Ready to Jump In? -You can download the latest ISO from the [GhostBSD website](https://www.ghostbsd.org/download) and install it on a physical machine or a virtual environment. - -## Technologies We Use -Here’s a quick rundown of the tools and languages you’ll encounter in GhostBSD development. - -### Programming Languages -GhostBSD projects use a mix of languages depending on the task. You don’t need to master them all—just focus on what’s relevant to your interests. - -#### Python -Most of our user-facing tools—like NetworkMgr, Update Station, and Software Station—are written in Python. It’s easy to learn, quick to develop with, and widely used in our ecosystem. - -#### C -The FreeBSD base system (which GhostBSD builds upon) and many libraries are written in C. It’s a low-level language that requires more effort to work with but delivers excellent performance and deep system access. - -#### Bourne Shell (sh) -Many scripts, including build tools like `ghostbsd-build` and utilities like `xconfig`, are written in Bourne shell script. It’s a lightweight way to automate tasks in the FreeBSD ecosystem. - -### GUI Toolkit and Libraries -Our graphical applications primarily use the [GTK3 toolkit](https://docs.gtk.org/gtk3/). We rely on GNOME libraries like GLib and GObject, often accessed through Python via [GObject Introspection](https://gi.readthedocs.io/). - -#### Configuration Tools -We use `dconf` for storing system configuration. You can interact with it via the `gsettings` command-line tool or the graphical `dconf-editor`. - -Install `dconf-editor` for a visual interface: - -```shell -sudo pkg install dconf-editor -``` - -## Setting Up Your Development Environment - - -Let's get your machine ready for GhostBSD development. - -### Install GhostBSD Base System Development Tools - -GhostBSD doesn’t come with base system development tools preinstalled. To enable compiling code and ports, install the `GhostBSD*-dev` packages. These include essential build tools, compilers, and libraries: - -```shell -sudo pkg install -g 'GhostBSD*-dev' -``` - -### Create a Development Directory -Organize your work in a dedicated directory. A common spot is your home directory: - -```shell -mkdir -p ~/projects/ghostbsd -```` - -Run cd `~/projects/ghostbsd` to jump in and start cloning repos. This keeps your repositories and files tidy. - -### Development Tools -#### Code Editors/IDEs -Pick an editor or IDE you like—there’s no wrong choice! Here are some favorites: - -* **PyCharm Community Edition:** Perfect for Python tools like NetworkMgr with built-in linting and debugging. - ```shell - sudo pkg install pycharm-ce - ``` -* `Visual Studio Code:` Lightweight and extensible, great for general-purpose coding. - ```shell - sudo pkg install vscode - ``` -* `Sublime Text:` Fast and minimalist with great plugin support. - ```shell - sudo pkg install linux-sublime-text4 - ``` -* `Neovim or Vim:` Lightweight for shell scripts or terminal fans. - ```shell - sudo pkg install neovim - ``` - -For Python development, PyCharm stands out with built-in linting. If using another editor, set up a Pylint plugin (e.g., via VS Code’s marketplace or Sublime’s Package Control) to catch issues early. Try one that fits your style! - -#### Version Control Tools -We use Git for version control. Beyond the command line, these graphical tools help: - -* **gitg:** A GTK-based interface to browse Git history. - ```shell - sudo pkg install gitg - cd ~/projects/ghostbsd - git clone https://github.com/ghostbsd/ghostbsd-ports.git - cd ghostbsd-ports - gitg - ``` -* **Sublime Merge:** A sleek Git client, pairs well with Sublime Text. - ```shell - sudo pkg install linux-sublime-merge - ``` - -Clone a repo first (e.g., `git clone https://github.com/ghostbsd/ghostbsd-ports.git`) to explore with these. Many editors also have Git plugins—check yours! - -### How to Contribute to GhostBSD - -We welcome all contributions! To get started, here's how to jump in: - -- **Check the Roadmap**: See our [releases roadmap](https://github.com/orgs/ghostbsd/projects/4) or [current sprint](https://github.com/orgs/ghostbsd/projects/4/views/22) for priorities. -- **Find a Task**: Browse the [issue tracker](https://github.com/orgs/ghostbsd/projects/4/views/21) for bugs or small features, or check [documentation tasks](https://github.com/orgs/ghostbsd/projects/5/views/1) for writing opportunities. -- **Submit Your Work**: Fork the repo, make changes, and send a pull request via GitHub. For docs, contribute to [ghostbsd/documentation](https://github.com/ghostbsd/documentation). -- **Join Us**: Hop into our [Telegram group](https://t.me/ghostbsd_dev) for guidance or to say hi and share what you're working on! \ No newline at end of file +- Browse our [project roadmap](https://github.com/orgs/ghostbsd/projects/4) to see what we're working on +- Check the [issue tracker](https://github.com/orgs/ghostbsd/projects/4/views/21) for tasks that need help +- Join our [Telegram developer group](https://t.me/ghostbsd_dev) to introduce yourself \ No newline at end of file diff --git a/contributor/index.md b/contributor/index.md index 8ce25c9..945ad61 100644 --- a/contributor/index.md +++ b/contributor/index.md @@ -4,11 +4,9 @@ Welcome to the GhostBSD contributor documentation! This section is for developer ## How to Contribute -- [Getting Started](getting-started/index.md) – Learn how to make your first contribution to GhostBSD. -- [GhostBSD Contributors Guide](contributors-guide/index) – A comprehensive guide covering all aspects of contributing to GhostBSD. -- [Contributor Levels](contributor-levels/index) – Understand the roles and levels of contributors, including member vs. non-member contributions. +- [Getting Started](getting-started/index) – Learn how to make your first contribution to GhostBSD. - [Contributing Code](code/index) – Guidelines for contributing code, including Python and C development. -- [Contributing to Ports](ports/index.md) – Help maintain and update our software ports. +- [Maintenance And Release](maintenance-release/index) – Help maintain ports, src, packages, releases, and versioning. - [Contributing Documentation](documentation/index) – Write or improve our documentation, including user and contributor guides. -- [Contributing Translations](translations/index.md) – Help translate GhostBSD into additional languages. +- [Contributing Translations](translations/index) – Help translate GhostBSD into additional languages. - [Community Involvement](community/index) – Get involved in our community, including user support and development discussions. \ No newline at end of file diff --git a/contributor/maintenance-release/index.md b/contributor/maintenance-release/index.md new file mode 100644 index 0000000..77e3cad --- /dev/null +++ b/contributor/maintenance-release/index.md @@ -0,0 +1,18 @@ +# Maintenance And Release Contribution + +Welcome to the GhostBSD maintenance and release contribution documentation! This section covers the overall maintenance of GhostBSD including ports, packages, OS source code (src), release process, versioning, and other related topics. + +## Ports and Packages + +- [Package Management Process](package-process.md) - Understanding GhostBSD's three-tier package repository system +- [Maintaining GhostBSD Ports in Sync with FreeBSD Ports](maintaining-ports-tree.md) - Learn how to keep our ports current with FreeBSD + +## Source Code Maintenance + +- [Maintaining GhostBSD Src in Sync with FreeBSD Src](maintaining-src-tree.md) - Learn how to keep our src tree current with FreeBSD and manage stable/releng branches + +## Release Process + +- [GhostBSD Versioning Guide](versioning-guide.md) - Understanding GhostBSD's versioning scheme and release numbering + +This section covers the complete process of creating and managing GhostBSD releases, from source code updates through final distribution. \ No newline at end of file diff --git a/contributor/ports/maintaining-ports-tree.md b/contributor/maintenance-release/maintaining-ports-tree.md similarity index 97% rename from contributor/ports/maintaining-ports-tree.md rename to contributor/maintenance-release/maintaining-ports-tree.md index 7d29d43..92f9364 100644 --- a/contributor/ports/maintaining-ports-tree.md +++ b/contributor/maintenance-release/maintaining-ports-tree.md @@ -16,7 +16,7 @@ This guide explains how to keep the GhostBSD ports tree (https://github.com/ghos ### 1. Clone the Repository and Configure Remotes Clone the GhostBSD ports repository if you don’t already have it: ```shell -git clone https://github.com/ghostbsd/ghostbsd-ports.git +git clone git@github.com:ghostbsd/ghostbsd-ports.git cd ghostbsd-ports ``` Add the FreeBSD ports repository as a remote: @@ -40,7 +40,7 @@ origin https://github.com/ghostbsd/ghostbsd-ports.git (push) --- ### 2. Create a New Working Branch -Always work in a feature branch to keep `master` clean: +Always work in a feature branch to keep `main` clean: ```shell git checkout master git pull origin master # Ensure your local master is up-to-date diff --git a/contributor/maintenance-release/maintaining-src-tree.md b/contributor/maintenance-release/maintaining-src-tree.md new file mode 100644 index 0000000..37d36c4 --- /dev/null +++ b/contributor/maintenance-release/maintaining-src-tree.md @@ -0,0 +1,282 @@ +# Maintaining GhostBSD Src from FreeBSD Src + +## Purpose +This guide explains how to keep the GhostBSD src tree (https://github.com/ghostbsd/ghostbsd-src) current with the upstream FreeBSD src tree (https://github.com/freebsd/freebsd-src), manage stable and releng branches, resolve merge conflicts, and test changes before submission. + +## Prerequisites +- Git installed and configured with SSH access to GitHub +- Basic understanding of Git commands and FreeBSD src structure +- A local working directory (e.g., `~/ghostbsd-src`) +- Understanding of FreeBSD's branching model (main → stable → releng) + +--- + +## Step-by-Step Instructions + +### 1. Clone the Repository and Configure Remotes +Clone the GhostBSD src repository using SSH: +```shell +git clone git@github.com:ghostbsd/ghostbsd-src.git +cd ghostbsd-src +``` +Add the FreeBSD src repository as a remote: +```shell +git remote add freebsd https://github.com/freebsd/freebsd-src.git +``` +Verify the remotes: +```shell +git remote -v +``` +Expected output: +``` +freebsd https://github.com/freebsd/freebsd-src.git (fetch) +freebsd https://github.com/freebsd/freebsd-src.git (push) +origin git@github.com:ghostbsd/ghostbsd-src.git (fetch) +origin git@github.com:ghostbsd/ghostbsd-src.git (push) +``` + +**Note**: If the `freebsd` remote is already set, skip the `git remote add` step. + +--- + +### 2. Understanding Branch Management Strategy + +GhostBSD follows a specific branching strategy to ensure safe integration with FreeBSD updates: + +#### Branch Creation Timeline: +1. **Update `main`** before FreeBSD creates `stable/15` +2. **Create `stable/15`** from updated `main` after FreeBSD creates their `stable/15` +3. **Update `stable/14`** before FreeBSD creates any `releng/14.*` +4. **Create `releng/14.*`** from updated `stable/14` after FreeBSD creates their `releng/14.*` + +#### Safe Merge Strategy: +- Always create a separate merge branch (e.g., `merge-freebsd/stable/15`) before merging +- Test the merge in the separate branch first +- Only create PR after conflicts are resolved and testing passes + +--- + +### 3. Working with Main Branch + +#### Update Main Branch: +```shell +git checkout main +git pull origin main +git fetch freebsd +git checkout -b merge-freebsd-main +git merge freebsd/main +``` + +**If conflicts occur**: Resolve them following the conflict resolution guidelines below. + +**After successful merge and testing**: +```shell +# Create PR from merge-freebsd-main to main +git push origin merge-freebsd-main +# Create PR on GitHub +``` + +--- + +### 4. Creating and Maintaining Stable Branches + +#### When FreeBSD Creates a New Stable Branch (e.g., stable/15): + +1. **First, ensure main is up-to-date** (follow step 3) +2. **Create the stable branch from main**: +```shell +git checkout main +git pull origin main # Ensure main is current +git checkout -b stable/15 +git push origin stable/15 +``` + +3. **Create merge branch and sync with FreeBSD**: +```shell +git checkout stable/15 +git checkout -b merge-freebsd/stable/15 +git fetch freebsd +git merge freebsd/stable/15 +``` + +#### For Existing Stable Branches: +```shell +git checkout stable/14 +git pull origin stable/14 +git checkout -b merge-freebsd/stable/14 +git fetch freebsd +git merge freebsd/stable/14 +``` + +--- + +### 5. Creating and Maintaining Releng Branches + +#### When FreeBSD Creates a New Releng Branch (e.g., releng/14.5): + +1. **First, ensure stable/14 is up-to-date**: +```shell +git checkout stable/14 +git pull origin stable/14 +git fetch freebsd +git checkout -b merge-freebsd/stable/14 +git merge freebsd/stable/14 +# Resolve conflicts, test, create PR for stable/14 first +``` + +2. **Create releng branch from updated stable**: +```shell +git checkout stable/14 +git pull origin stable/14 # After stable/14 PR is merged +git checkout -b releng/14.5 +git push origin releng/14.5 +``` + +3. **Create merge branch and sync with FreeBSD**: +```shell +git checkout releng/14.5 +git checkout -b merge-freebsd/releng/14.5 +git fetch freebsd +git merge freebsd/releng/14.5 +``` + +#### Updating Releng Branches for Patch Levels (p1, p2, etc.): + +When FreeBSD adds patch levels to existing releng branches (e.g., releng/14.2-p1): + +1. **Update existing releng branch**: +```shell +git checkout releng/14.2 +git pull origin releng/14.2 +git checkout -b merge-freebsd/releng/14.2-p1 +git fetch freebsd +git merge freebsd/releng/14.2 +``` + +2. **Update GhostBSD version**: +```shell +# Update sys/conf/package-version to reflect new patch level +# Example: 25.01.R14.2p0 → 25.01.R14.2p1 +# See the [GhostBSD Versioning Guide](versioning-guide.md) for version format details +``` + +3. **Test and create PR**: +```shell +# After resolving conflicts and testing +git push origin merge-freebsd/releng/14.2-p1 +# Create PR to merge into releng/14.2 +``` + +--- + +### 6. Resolve Merge Conflicts + +Conflicts typically occur in GhostBSD-specific modifications. To find conflicts: +```shell +grep -R '<<<<<<< HEAD' . +``` + +**Resolution Guidelines**: +- **Always preserve GhostBSD customizations**: Keep our specific changes and fixes +- **If uncertain about a conflict**: Ask for guidance rather than guessing +- **Check the conflict context**: Understand what each side is trying to achieve +- **Test thoroughly**: Conflicts can introduce subtle bugs + +Example conflict resolution: +``` +<<<<<<< HEAD +# GhostBSD-specific changes (keep these) +======= +# FreeBSD changes (evaluate if compatible) +>>>>>>> freebsd/main +``` + +--- + +### 7. Testing Changes + +Before submitting any changes, test the build: +```shell +make buildworld +make buildkernel +``` + +**Important**: Both commands must complete successfully before creating a PR. + +If build errors occur: +1. Review the error messages +2. Check if GhostBSD customizations are conflicting with FreeBSD changes +3. Resolve the issues +4. Re-test the build + +--- + +### 8. Submit Changes + +After successful testing: + +1. **Stage all changes**: +```shell +git add -A +``` + +2. **Commit changes**: +```shell +git commit -m "Merge FreeBSD [branch] updates + +- Resolved conflicts in [files] +- Preserved GhostBSD customizations +- Build tested successfully" +``` + +3. **Push merge branch**: +```shell +git push origin merge-freebsd/[branch-name] +``` + +4. **Create Pull Request**: +- Create PR from `merge-freebsd/[branch-name]` to target branch +- Describe resolved conflicts and testing performed +- Await review and approval + +:::{note} +Never push directly to `main`, `stable/*`, or `releng/*` branches. Always use the merge branch and PR workflow. +::: + +--- + +## Branch Management Best Practices + +### Timing Guidelines: +- **Monitor FreeBSD announcements** for new stable/releng branch creation +- **Update GhostBSD branches before** FreeBSD creates new branches when possible +- **Create branches promptly** after FreeBSD creates them to minimize drift + +### Testing Requirements: +- **Always run full build tests** (`make buildworld buildkernel`) +- **Test in merge branches first** before creating PRs +- **Document any build issues** and their resolutions + +### Conflict Resolution: +- **When in doubt, ask**: Don't guess about complex conflicts +- **Preserve GhostBSD identity**: Keep our customizations and branding +- **Document decisions**: Note why certain changes were kept or modified + +--- + +## Common Issues and Solutions + +- **Build Failures**: Check for GhostBSD-specific patches that may conflict with FreeBSD updates +- **Complex Conflicts**: Create a backup branch before attempting resolution +- **Branch Creation Timing**: If you miss the optimal timing, additional conflicts may occur but can still be resolved +- **Testing Environment**: Ensure your build environment matches the target architecture + +--- + +## Emergency Procedures + +If a merge branch becomes too complex: +1. **Create a backup**: `git checkout -b backup-merge-branch` +2. **Start fresh**: Return to the target branch and create a new merge branch +3. **Cherry-pick specific commits**: Apply only the changes that worked +4. **Ask for help**: Complex situations may require collaborative resolution \ No newline at end of file diff --git a/contributor/ports/package-process.md b/contributor/maintenance-release/package-process.md similarity index 100% rename from contributor/ports/package-process.md rename to contributor/maintenance-release/package-process.md diff --git a/contributor/maintenance-release/versioning-guide.md b/contributor/maintenance-release/versioning-guide.md new file mode 100644 index 0000000..9f097bf --- /dev/null +++ b/contributor/maintenance-release/versioning-guide.md @@ -0,0 +1,102 @@ +# GhostBSD Versioning Guide + +## Overview +GhostBSD uses a versioning scheme that clearly indicates which FreeBSD release it's based on, making it easier to track compatibility and updates. + +## Versioning Format + +The GhostBSD version format is: **`YY.PP.R##.#p#`** + +### Components Breakdown: +- **`YY`**: Last two digits of the year (e.g., `25` for 2025) +- **`PP`**: GhostBSD patch version (incremental: `01`, `02`, `03`, etc.) +- **`R`**: Indicates this is a RELEASE version +- **`##.#`**: FreeBSD major and minor version (e.g., `14.2`) +- **`p#`**: FreeBSD patch level (`p0`, `p1`, `p2`, etc.) + +### Example: +**`25.01.R14.2p1`** means: +- Released in **2025** +- **First** GhostBSD patch version of the year (`01`) +- Based on FreeBSD **RELEASE** +- Uses FreeBSD **14.2** base +- Includes FreeBSD patch level **p1** + +--- + +## Version Examples + +| GhostBSD Version | Release Year | Notes | +|------------------|--------------|-------| +| `25.01.R14.2p0` | 2025 | Based on initial 14.2 release | +| `25.01.R14.2p1` | 2025 | First patch level update | +| `25.02.R14.2p2` | 2025 | Updated for security patches | +| `25.03.R14.3p0` | 2025 | New FreeBSD minor version | + +--- + +## Checking GhostBSD Version + +```bash +# Check GhostBSD version +ghostbsd-version + +# Direct file check +cat /etc/version +``` + +--- + +## Version Files in ghostbsd-src + +### Key Version File: +- **`sys/conf/package-version`**: Contains the GhostBSD version string + +### Version Flow: +1. `sys/conf/package-version` contains the GhostBSD version string +2. Build process uses this to create `/etc/version` in the final system +3. `ghostbsd-version` command reads `/etc/version` + +--- + +## Release Lifecycle + +### Regular Release Cycle: +1. **Update to new FreeBSD base** +2. **Testing and integration** of GhostBSD-specific features +3. **Update `sys/conf/package-version`** with new GhostBSD version +4. **Build and test** complete system +5. **Release** with updated version number + +### Update Types: +- **Patch level updates**: Update FreeBSD patch (e.g., `25.01.R14.2p0` → `25.01.R14.2p1`) +- **GhostBSD updates**: Increment GhostBSD patch version (e.g., `25.01.R14.2p1` → `25.02.R14.2p1`) + +--- + +## Branch Correlation + +### Repository Branches vs. Versions: + +| Repository Branch | GhostBSD Version Pattern | +|-------------------|-------------------------| +| `main` | Development builds | +| `stable/14` | Not released | +| `releng/14.2` | `25.01.R14.2p0`, `25.01.R14.2p1` | +| `releng/14.3` | `25.03.R14.3p0` | + +--- + +## Developer Guidelines + +### When Creating Releases: +1. **Update `sys/conf/package-version`**: Set the new GhostBSD version +2. **Test version commands**: Verify `ghostbsd-version` returns correct value +3. **Build and test**: Complete system build and testing +4. **Document changes**: Note any GhostBSD-specific modifications + +### Version Verification: +```bash +# After building, verify version is correct +ghostbsd-version # Should show new GhostBSD version +``` \ No newline at end of file diff --git a/contributor/ports/index.md b/contributor/ports/index.md deleted file mode 100644 index bfdbcad..0000000 --- a/contributor/ports/index.md +++ /dev/null @@ -1,6 +0,0 @@ -# Ports Contribution - -Welcome to the GhostBSD ports contribution documentation! Here’s how you can help maintain our ports tree and updated ports. - -- [Package Management Process](package-process.md) - Understanding GhostBSD's three-tier package repository system -- [Maintaining GhostBSD Ports in Sync with FreeBSD Ports](maintaining-ports-tree.md) - Learn how to keep our ports current with FreeBSD. \ No newline at end of file diff --git a/index.md b/index.md index 2ead5e8..5de1e20 100644 --- a/index.md +++ b/index.md @@ -29,10 +29,11 @@ user/FAQ contributor/index contributor/getting-started/index -contributor/ports/index +contributor/code/index +contributor/maintenance-release/index +contributor/documentation/index contributor/translations/index -contributor/contributor-levels -contributor/ghostbsd-contributors-guide +contributor/community/index ``` From 14d4a782eed783ed3fd70669128088c5e2b9997d Mon Sep 17 00:00:00 2001 From: ericbsd Date: Sat, 19 Jul 2025 08:50:49 -0300 Subject: [PATCH 2/3] Remove redundant "Get Involved" pages and polish maintenance docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Deleted outdated "Get Involved" and "Zaangażuj się" contributor pages - Clarified title formatting in "Maintaining GhostBSD Src from FreeBSD Src" doc --- contributor/get-involved-pl.md | 50 ------------------ contributor/get-involved.md | 51 ------------------- .../maintaining-src-tree.md | 2 +- 3 files changed, 1 insertion(+), 102 deletions(-) delete mode 100644 contributor/get-involved-pl.md delete mode 100644 contributor/get-involved.md diff --git a/contributor/get-involved-pl.md b/contributor/get-involved-pl.md deleted file mode 100644 index 9065871..0000000 --- a/contributor/get-involved-pl.md +++ /dev/null @@ -1,50 +0,0 @@ -Zaangażuj się -============= - -Witamy w Społeczności GhostBSD! Angażując się, poznasz nowych przyjaciół, nauczysz się nowych umiejętności i zrobisz różnicę dla wielu użytkowników, współpracując z ludźmi z całego świata. Ta strona przedstawi Ci krótko rzeczy, które każdy, kto przyczynia się do GhostBSD, powinien wiedzieć i pomoże Ci zacząć działać. - -## [Rozpoczęcie pracy](getting-started.md) - -Ta sekcja obejmuje wymagania i technologie używane przez GhostBSD. Jeśli potrzebujesz pomocy na początek, prosimy zadawać wszelkie pytania na [Telegramie](https://t.me/ghostbsd) lub [Element](https://app.element.io/#/room/#ghostbsd:matrix.org)! - -[Dowiedz się więcej o rozpoczęciu pracy.](getting-started.md) - -```{toctree} -:caption: Dokumentacja dla współpracowników -:hidden: - -getting-started -``` - -## Zgłaszanie Problemów -Jeśli znalazłeś problem lub masz pomysł na ulepszenie, zgłoś to deweloperom! QA jest niezwykle ważne, aby zapewnić jakość, a Ty możesz się zaangażować, aby upewnić się, że nasi użytkownicy są zadowoleni z końcowych produktów ciężkiej pracy. - -## Priorytetyzacja Błędów -Jeśli chcesz zrobić kolejny krok w przyczynianiu się do GhostBSD, pomóż w priorytetyzacji zgłoszeń na GitHubie! Oddzielając mniej i bardziej krytyczne błędy, pomożesz deweloperom zidentyfikować, nad którymi problemami powinni pracować, oraz dostarczyć im niezbędnych informacji do ich naprawy. Nie potrzebujesz żadnego doświadczenia programistycznego, aby priorytetyzować zgłoszenia na GitHubie. To doskonałe wprowadzenie, jeśli chcesz zostać deweloperem, ale jeszcze nie czujesz się pewnie w swoich umiejętnościach programistycznych. - -## Rozwój -Jeśli chcesz wnieść swój kod do projektu GhostBSD, dostępnych jest wiele małych zadań, więc nie musisz być programistą, aby zacząć rozwijać GhostBSD! W trakcie tego procesu nauczysz się cennych nowych umiejętności, takich jak C, Python, GTK, skrypty Shell, tworzenie i utrzymywanie portów FreeBSD oraz inne. - -## [Wkład w Dokumentację](documentation.md) -Nawet najlepiej zaprojektowane oprogramowanie wymaga dokumentacji, aby użytkownicy mogli zrobić to, czego chcą i wykorzystać je w pełni. Dobrej jakości dokumentacja jest niezbędna i ma jeden z największych wpływów na zadowolenie użytkowników końcowych. - -[Dowiedz się więcej o pomocy przy dokumentacji GhostBSD.](documentation.md) - -```{toctree} -:caption: Dokumentacja dla współpracowników -:hidden: - -documentation -``` - -## [Wsparcie Użytkowników](users-support.md) -Czasami użytkownicy napotkają problemy, będą mieć pytania i nie znajdą pomocy lub odpowiedzi na własną rękę. Będą potrzebować kogoś, kto udzieli im wskazówek i wsparcia. Społeczność GhostBSD zapewnia kilka platform, na których użytkownicy mogą uzyskać wsparcie od innych użytkowników, dlatego ważne jest, aby inni użytkownicy byli gotowi udzielić tego wsparcia. - -[Dowiedz się więcej o udzielaniu wsparcia użytkownikom.](users-support.md) - -```{toctree} -:caption: Dokumentacja dla współpracowników -:hidden: - -users-support -``` \ No newline at end of file diff --git a/contributor/get-involved.md b/contributor/get-involved.md deleted file mode 100644 index 1c6c5d1..0000000 --- a/contributor/get-involved.md +++ /dev/null @@ -1,51 +0,0 @@ -Get Involved -============ - -Welcome to the GhostBSD Community! By getting involved, you will meet new friends, learn new skills and make a difference for many users while working with people from all around the globe. This page will give you a brief introduction to things everyone contributing to GhostBSD should know and help you get started with contributing. - -## [Getting Started](getting-started.md) - -This section covers requirements and technology used by GhostBSD. If you need help to get started, please ask any questions you may have on [Telegram](https://t.me/ghostbsd) or [Element](https://app.element.io/#/room/#ghostbsd:matrix.org)! - -[Find out more about how to get started.](getting-started.md) - -```{toctree} -:caption: Contributor documentation -:hidden: - -getting-started -``` - -## Issue Reporting -If you've found a problem or have an idea for an improvement, report it to the developers! QA is critically important to ensure quality, and you can be involved to make sure that our users are happy with the final products. - -## Bug Triaging -If you'd like to take the next step in contributing to GhostBSD, help triage all those GitHub tickets that people are filing! By separating the wheat from the chaff, you will help developers figure out which issues they need to work on and help them get the information they need to fix them. You don't need any programming experience to triage GitHub tickets, and it's a perfect introduction if you want to become a developer eventually but don't feel like your programming experience is good enough yet. - -## Development -If you'd like to contribute code for the GhostBSD project, there are many small tasks available, so you don't even need to be a programmer to start developing GhostBSD! In the process, you'll learn valuable new skills like C, Python, GTK, Shell Scripting, Creating and maintaining FreeBSD ports, and so on. - -## [Documentation Contribution](documentation.md) -Even with the best-designed software, users will need documentation to help them do what they want and get the most out of it. Good-quality documentation is essential and has one of the most significant impacts on end-users. - -[Find out more about helping with the GhostBSD documentation.](documentation.md) - -```{toctree} -:caption: Contributor documentation -:hidden: - -documentation -``` - -## [Users Support](users-support.md) -Sometimes users will run into trouble, have questions, and not find help or answers on their own. They will need someone to provide guidance and help. The GhostBSD Community provides several platforms for users to ask for support from other users, so other users must be ready to give that support. - - -[Find out more about providing user support.](users-support.md) - -```{toctree} -:caption: Contributor documentation -:hidden: - -users-support -``` \ No newline at end of file diff --git a/contributor/maintenance-release/maintaining-src-tree.md b/contributor/maintenance-release/maintaining-src-tree.md index 37d36c4..bbb7bd5 100644 --- a/contributor/maintenance-release/maintaining-src-tree.md +++ b/contributor/maintenance-release/maintaining-src-tree.md @@ -1,4 +1,4 @@ -# Maintaining GhostBSD Src from FreeBSD Src +# Maintaining GhostBSD Src from FreeBSD SRC ## Purpose This guide explains how to keep the GhostBSD src tree (https://github.com/ghostbsd/ghostbsd-src) current with the upstream FreeBSD src tree (https://github.com/freebsd/freebsd-src), manage stable and releng branches, resolve merge conflicts, and test changes before submission. From e60f5a86ea832b900a0d57ca09008784582e55e5 Mon Sep 17 00:00:00 2001 From: ericbsd Date: Sat, 19 Jul 2025 16:29:09 -0300 Subject: [PATCH 3/3] Enhance translation docs, dark mode styles, and dependencies - Improved file structure in translation documentation for clarity. - Expanded dark mode CSS with specific rules for headings, links, and syntax highlighting. - Updated `conf.py` to configure `linkify` and added `pygments_style` for syntax highlighting. - Added `sphinx-autobuild` and reorganized requirements in `requirements.txt`. --- _static/dark_mode.css | 106 ++++++++++++++++++- conf.py | 8 +- contributor/translations/translate-python.md | Bin 6816 -> 6797 bytes requirements.txt | 5 +- 4 files changed, 114 insertions(+), 5 deletions(-) diff --git a/_static/dark_mode.css b/_static/dark_mode.css index db07c71..b36e36c 100644 --- a/_static/dark_mode.css +++ b/_static/dark_mode.css @@ -30,13 +30,58 @@ body.dark-mode h3, body.dark-mode h4, body.dark-mode h5, body.dark-mode h6 { - color: #ffffff; /* White headings */ + color: #ffffff !important; /* White headings */ +} + +/* More specific rules for content headings */ +body.dark-mode .rst-content h1, +body.dark-mode .rst-content h2, +body.dark-mode .rst-content h3, +body.dark-mode .rst-content h4, +body.dark-mode .rst-content h5, +body.dark-mode .rst-content h6 { + color: #ffffff !important; /* White headings in content */ +} + +/* Fix heading links that inherit link colors */ +body.dark-mode .rst-content h1 a, +body.dark-mode .rst-content h2 a, +body.dark-mode .rst-content h3 a, +body.dark-mode .rst-content h4 a, +body.dark-mode .rst-content h5 a, +body.dark-mode .rst-content h6 a { + color: #ffffff !important; /* White heading links */ +} + +/* Target the specific toc-backref links in headings */ +body.dark-mode .rst-content a.toc-backref { + color: #ffffff !important; /* White toc backref links */ +} + +/* Target headerlink anchors in headings */ +body.dark-mode .rst-content a.headerlink { + color: #ffffff !important; /* White header anchor links */ +} + +/* Even more specific for document section headings */ +body.dark-mode .document h1, +body.dark-mode .document h2, +body.dark-mode .document h3, +body.dark-mode .document h4, +body.dark-mode .document h5, +body.dark-mode .document h6 { + color: #ffffff !important; /* White headings in document */ } body.dark-mode a { color: #4da8da; /* Light blue links */ } +/* Only apply visited link color to content area, not navigation */ +body.dark-mode .rst-content a:visited { + color: #bb86fc; /* Light purple for visited links */ +} + body.dark-mode a:hover { color: #66b3ff; /* Lighter blue on hover */ } @@ -47,6 +92,65 @@ body.dark-mode pre { border: 1px solid #3c3c3c; } +/* Code blocks in dark mode */ +/*.dark-mode .highlight {*/ +/* background: #2b2b2b !important;*/ +/* border: 1px solid #444 !important;*/ +/*}*/ + +/* Inline code in dark mode */ +.dark-mode .rst-content code.literal, +.dark-mode .rst-content tt.literal { + background: #404040 !important; + color: #f8f8f2 !important; + border: 1px solid #555 !important; + padding: 2px 4px !important; +} + +/* Syntax highlighting colors for dark mode */ +.dark-mode .highlight .c { color: #75715e !important; } /* comments */ +.dark-mode .highlight .k { color: #66d9ef !important; } /* keywords */ +.dark-mode .highlight .s { color: #e6db74 !important; } /* strings */ +.dark-mode .highlight .mi { color: #ae81ff !important; } /* numbers */ +.dark-mode .highlight .n { color: #f8f8f2 !important; } /* names */ +.dark-mode .highlight .nb { color: #f92672 !important; } /* builtins */ +.dark-mode .highlight .nf { color: #a6e22e !important; } /* functions */ +.dark-mode .highlight .o { color: #f92672 !important; } /* operators */ +.dark-mode .highlight .p { color: #f8f8f2 !important; } /* punctuation */ +.dark-mode .highlight .nn { color: #66d9ef !important; } /* imports/namespaces */ +.dark-mode .highlight .kn { color: #f92672 !important; } /* import keywords */ +.dark-mode .highlight .na { color: #a6e22e !important; } /* attribute names */ +.dark-mode .highlight .nc { color: #a6e22e !important; } /* class names */ +.dark-mode .highlight .nd { color: #a6e22e !important; } /* decorators */ +.dark-mode .highlight .ne { color: #a6e22e !important; } /* exceptions */ +.dark-mode .highlight .ni { color: #f92672 !important; } /* name indicators */ +.dark-mode .highlight .nl { color: #f92672 !important; } /* name labels */ +.dark-mode .highlight .nt { color: #f92672 !important; } /* name tags */ +.dark-mode .highlight .nv { color: #f8f8f2 !important; } /* name variables */ +.dark-mode .highlight .ow { color: #f92672 !important; } /* operator words */ +.dark-mode .highlight .w { color: #f8f8f2 !important; } /* whitespace */ +.dark-mode .highlight .mf { color: #ae81ff !important; } /* numbers float */ +.dark-mode .highlight .mh { color: #ae81ff !important; } /* numbers hex */ +.dark-mode .highlight .mo { color: #ae81ff !important; } /* numbers octal */ +.dark-mode .highlight .sb { color: #e6db74 !important; } /* string backtick */ +.dark-mode .highlight .sc { color: #e6db74 !important; } /* string char */ +.dark-mode .highlight .sd { color: #e6db74 !important; } /* string doc */ +.dark-mode .highlight .s2 { color: #e6db74 !important; } /* string double */ +.dark-mode .highlight .se { color: #ae81ff !important; } /* string escape */ +.dark-mode .highlight .sh { color: #e6db74 !important; } /* string heredoc */ +.dark-mode .highlight .si { color: #e6db74 !important; } /* string interpol */ +.dark-mode .highlight .sx { color: #e6db74 !important; } /* string other */ +.dark-mode .highlight .sr { color: #e6db74 !important; } /* string regex */ +.dark-mode .highlight .s1 { color: #e6db74 !important; } /* string single */ +.dark-mode .highlight .ss { color: #e6db74 !important; } /* string symbol */ + + +/* Code block container */ +/*.dark-mode .rst-content .highlight {*/ +/* margin: 1em 0 !important;*/ +/*}*/ + + /* Optional: Style the toggle button */ button { padding: 8px 16px; diff --git a/conf.py b/conf.py index f7683e1..b257490 100644 --- a/conf.py +++ b/conf.py @@ -36,10 +36,13 @@ myst_enable_extensions = [ 'colon_fence', 'attrs_inline', - 'linkify', - 'colon_fence' + 'linkify' ] +# Configure linkify to only auto-link www.* and https://* patterns +myst_linkify_fuzzy_links = False +myst_url_schemes = ["https", "http"] + master_doc = 'index' source_suffix = [".md"] @@ -51,6 +54,7 @@ # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['README.md'] +pygments_style = 'default' # -- Options for HTML output ------------------------------------------------- diff --git a/contributor/translations/translate-python.md b/contributor/translations/translate-python.md index f2346e9384834eb533f7046a46603f3e2f6d808f..5a7d219f17f67b8b9ece08f7b70ab81f4bf2c0af 100644 GIT binary patch delta 106 zcmZ2r+H1PuA|H=}f~bvh3lk9DXf1plniUW=;xJheA$f e5{wBlU?;ySlY+wLhx{klCa)GV*nC&)Ff#xs^%^+< delta 125 zcmeA*U0}N5A|JmD1A{_AzCIU|f`S5&J^3!5Ham>X%dZA!TR_<&KsCwyTFM}ONu`-N tDG;qdVTGK`BnSs+lmbZIYJOE_Aien#{|Pom*2y!)3>jHBpA