Skip to content

Commit 1a1fa7c

Browse files
author
Tom Softreck
committed
update docs
1 parent 815e2f6 commit 1a1fa7c

File tree

6 files changed

+530
-0
lines changed

6 files changed

+530
-0
lines changed

.github/workflows/ci.yml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, master ]
6+
pull_request:
7+
branches: [ main, master ]
8+
schedule:
9+
# Weekly builds
10+
- cron: '0 0 * * 0'
11+
12+
jobs:
13+
test:
14+
name: Test on ${{ matrix.distro }}
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
distro: [fedora:latest, ubuntu:latest, debian:latest, centos:latest, archlinux:latest]
20+
container:
21+
image: ${{ matrix.distro }}
22+
# Use bash for all containers
23+
options: --entrypoint /bin/bash
24+
steps:
25+
- name: Install dependencies
26+
run: |
27+
# Common dependencies
28+
if command -v apt-get &> /dev/null; then
29+
apt-get update
30+
apt-get install -y sudo bash coreutils findutils grep sed gawk
31+
elif command -v dnf &> /dev/null; then
32+
dnf install -y sudo bash coreutils findutils grep sed gawk
33+
elif command -v yum &> /dev/null; then
34+
yum install -y sudo bash coreutils findutils grep sed gawk
35+
elif command -v pacman &> /dev/null; then
36+
pacman -Sy --noconfirm sudo bash coreutils findutils grep sed gawk
37+
fi
38+
39+
- name: Checkout code
40+
uses: actions/checkout@v3
41+
42+
- name: Run ShellCheck
43+
uses: ludeeus/[email protected]
44+
with:
45+
check_files: 'fedora-cleaner.sh'
46+
47+
- name: Run tests
48+
run: |
49+
# Make script executable
50+
chmod +x fedora-cleaner.sh
51+
52+
# Test help
53+
./fedora-cleaner.sh --help
54+
55+
# Test dry run
56+
./fedora-cleaner.sh --dry-run
57+
58+
# Test version
59+
./fedora-cleaner.sh --version || true
60+
61+
build:
62+
name: Build Package
63+
runs-on: ubuntu-latest
64+
needs: test
65+
steps:
66+
- name: Checkout code
67+
uses: actions/checkout@v3
68+
with:
69+
fetch-depth: 0
70+
71+
- name: Set up Python
72+
uses: actions/setup-python@v4
73+
with:
74+
python-version: '3.x'
75+
76+
- name: Install dependencies
77+
run: |
78+
sudo apt-get update
79+
sudo apt-get install -y pandoc
80+
pip install --upgrade pip setuptools wheel
81+
pip install twine
82+
83+
- name: Build documentation
84+
run: make docs
85+
86+
- name: Build package
87+
run: make package
88+
89+
- name: Upload artifacts
90+
uses: actions/upload-artifact@v3
91+
with:
92+
name: package
93+
path: dist/
94+
95+
deploy-docs:
96+
name: Deploy Documentation
97+
runs-on: ubuntu-latest
98+
needs: build
99+
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
100+
steps:
101+
- name: Checkout
102+
uses: actions/checkout@v3
103+
104+
- name: Set up Ruby
105+
uses: ruby/setup-ruby@v1
106+
with:
107+
ruby-version: '3.1'
108+
bundler-cache: true
109+
110+
- name: Build and deploy
111+
env:
112+
JEKYLL_ENV: production
113+
run: |
114+
gem install bundler
115+
bundle install
116+
bundle exec jekyll build --destination docs
117+
118+
- name: Deploy to GitHub Pages
119+
uses: peaceiris/actions-gh-pages@v3
120+
with:
121+
github_token: ${{ secrets.GITHUB_TOKEN }}
122+
publish_dir: ./docs

CODE_OF_CONDUCT.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, caste, color, religion, or sexual
10+
identity and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the overall
26+
community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or advances of
31+
any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email address,
35+
without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
[tom.sapletta.com/contact](https://tom.sapletta.com/contact).
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series of
86+
actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or permanent
93+
ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within the
113+
community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.1, available at
119+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder][Mozilla CoC].
123+
124+
For answers to common questions about this code of conduct, see the FAQ at
125+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126+
[https://www.contributor-covenant.org/translations][translations].
127+
128+
[homepage]: https://www.contributor-covenant.org
129+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130+
[Mozilla CoC]: https://github.com/mozilla/diversity
131+
[FAQ]: https://www.contributor-covenant.org/faq
132+
[translations]: https://www.contributor-covenant.org/translations

CONTRIBUTING.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# Contributing to Fedora Cleaner
2+
3+
Thank you for considering contributing to Fedora Cleaner! We appreciate your time and effort in making this tool better for everyone.
4+
5+
## 📋 Table of Contents
6+
7+
- [Code of Conduct](#code-of-conduct)
8+
- [How Can I Contribute?](#how-can-i-contribute)
9+
- [Reporting Bugs](#reporting-bugs)
10+
- [Suggesting Enhancements](#suggesting-enhancements)
11+
- [Pull Requests](#pull-requests)
12+
- [Development Setup](#development-setup)
13+
- [Style Guidelines](#style-guidelines)
14+
- [Commit Message Guidelines](#commit-message-guidelines)
15+
- [License](#license)
16+
17+
## Code of Conduct
18+
19+
This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
20+
21+
## How Can I Contribute?
22+
23+
### Reporting Bugs
24+
25+
Bugs are tracked as [GitHub issues](https://github.com/DevOpsTerminal/fedora-cleaner/issues). When creating a bug report, please include the following information:
26+
27+
1. **A clear, descriptive title**
28+
2. **Steps to reproduce** the issue
29+
3. **Expected behavior**
30+
4. **Actual behavior**
31+
5. **Screenshots** (if applicable)
32+
6. **System information** (OS, distribution, version, etc.)
33+
7. **Fedora Cleaner version**
34+
35+
### Suggesting Enhancements
36+
37+
Enhancement suggestions are also tracked as [GitHub issues](https://github.com/DevOpsTerminal/fedora-cleaner/issues). When suggesting an enhancement, please include:
38+
39+
1. **A clear, descriptive title**
40+
2. **A detailed description** of the enhancement
41+
3. **Why this enhancement would be useful** to most users
42+
4. **Examples** of how it might be used
43+
44+
### Pull Requests
45+
46+
1. Fork the repository and create your branch from `main`.
47+
2. If you've added code that should be tested, add tests.
48+
3. Ensure the test suite passes.
49+
4. Make sure your code lints.
50+
5. Update the documentation as needed.
51+
6. Issue that pull request!
52+
53+
## Development Setup
54+
55+
1. **Fork** the repository on GitHub
56+
2. **Clone** your fork locally
57+
```bash
58+
git clone https://github.com/your-username/fedora-cleaner.git
59+
cd fedora-cleaner
60+
```
61+
3. **Set up** the development environment:
62+
```bash
63+
# Install development dependencies
64+
make dev-setup
65+
```
66+
4. **Make your changes**
67+
5. **Test your changes**
68+
```bash
69+
make test
70+
```
71+
6. **Commit your changes**
72+
```bash
73+
git add .
74+
git commit -m "Your detailed description of your changes."
75+
```
76+
7. **Push** to your fork and submit a pull request
77+
78+
## Style Guidelines
79+
80+
- **Bash Scripting**: Follow the [Google Shell Style Guide](https://google.github.io/styleguide/shellguide.html)
81+
- **Documentation**: Use Markdown for documentation
82+
- **Code Formatting**: Use `shellcheck` for linting
83+
84+
## Commit Message Guidelines
85+
86+
We follow [Conventional Commits](https://www.conventionalcommits.org/) for our commit messages:
87+
88+
```
89+
<type>[optional scope]: <description>
90+
91+
[optional body]
92+
93+
[optional footer(s)]
94+
```
95+
96+
### Types:
97+
- **feat**: A new feature
98+
- **fix**: A bug fix
99+
- **docs**: Documentation only changes
100+
- **style**: Changes that do not affect the meaning of the code
101+
- **refactor**: A code change that neither fixes a bug nor adds a feature
102+
- **perf**: A code change that improves performance
103+
- **test**: Adding missing or correcting existing tests
104+
- **chore**: Changes to the build process or auxiliary tools
105+
106+
## License
107+
108+
By contributing, you agree that your contributions will be licensed under its Apache License 2.0.

Gemfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
source "https://rubygems.org"
2+
3+
# Jekyll
4+
ruby '>= 2.5.0'
5+
6+
gem "jekyll", "~> 4.3.0"
7+
gem "jekyll-feed", "~> 0.15.1"
8+
gem "jekyll-seo-tag", "~> 2.7.1"
9+
gem "jekyll-sitemap", "~> 1.4.0"
10+
gem "jekyll-theme-cayman", "~> 0.2.0"
11+
12+
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
13+
platforms :mingw, :x64_mingw, :mswin, :jruby do
14+
gem "tzinfo", "~> 1.2"
15+
gem "tzinfo-data"
16+
end
17+
18+
# Performance-booster for watching directories on Windows
19+
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]

0 commit comments

Comments
 (0)