solunatus 0.4.0

High-precision astronomical calculation library and CLI for sun/moon positions, rise/set times, and lunar phases
Documentation
# GitHub Repository Settings for Maintainer-Only Development

This document outlines the recommended GitHub repository settings for Solunatus, configured for maintainer-only development while welcoming user feedback.

## ✅ Settings Applied via API

The following settings have been configured automatically:

### General Repository Settings
- **Delete branch on merge**: Enabled - Automatically cleans up merged branches
-**Issues**: Enabled - Users can report bugs and request features
-**Projects**: Enabled - For internal project management

### Merge Settings
- **Allow squash merging**: Enabled
-**Allow merge commits**: Enabled
-**Allow rebase merging**: Enabled
-**Auto-merge**: Disabled

## ⚙️ Manual Settings (Web Interface Required)

Some settings require configuration through the GitHub web interface. Navigate to:
**Settings** → **General** / **Branches** / **Actions** as indicated below.

### Repository Visibility (Settings → General → Danger Zone)

**Current**: Private
**Recommendation**:
- If keeping **Private**: Forking is automatically allowed for private repos (can't be disabled for user-owned repos)
- If making **Public**: Consider the forking implications below

**Note**: For user-owned repositories (not organization-owned), the `allow_forking` setting cannot be changed via API. GitHub automatically allows forking for private repos to enable collaboration, but since we're not accepting PRs, this is less of a concern.

### Pull Requests (Settings → General → Pull Requests)

Configure these settings manually:

- ☑️ **Allow merge commits** - Keep enabled (already set)
- ☑️ **Allow squash merging** - Keep enabled (already set)
- ☑️ **Allow rebase merging** - Keep enabled (already set)
- ☑️ **Automatically delete head branches** - Enabled (already set)

Optional (recommended):
- **Allow auto-merge** - Keep disabled (already set)
-**Always suggest updating pull request branches** - Disabled (default)

### Branch Protection Rules (Settings → Branches)

**Note**: Branch protection for private repositories requires GitHub Pro. If you have Pro, configure these settings:

**For the `main` branch**:

Navigate to: **Settings → Branches → Add rule**

Rule name: `main`

**Recommended settings for maintainer-only workflow**:

- **Require a pull request before merging** - UNCHECKED (you're pushing directly)
-**Require status checks to pass before merging** - UNCHECKED (optional: enable if using CI)
-**Require conversation resolution before merging** - UNCHECKED
-**Require signed commits** - OPTIONAL (good security practice)
-**Require linear history** - OPTIONAL (keeps history clean)
-**Require deployments to succeed before merging** - UNCHECKED
-**Lock branch** - UNCHECKED (you need to push)
-**Do not allow bypassing the above settings** - UNCHECKED (you need full access)
- ☑️ **Allow force pushes** - CHECKED (you may need to rewrite history)
-**Allow deletions** - UNCHECKED (prevent accidental deletion)

**If you DON'T have GitHub Pro**: Branch protection is not available for private repos on the free tier. This is acceptable for maintainer-only development since you have full control.

### GitHub Actions (Settings → Actions → General)

If using GitHub Actions for CI/CD:

**Actions permissions**:
- ⚪ Allow all actions and reusable workflows (most permissive)
- ⚪ Allow actions created by GitHub (recommended)
- ⚪ Allow only local actions (most restrictive)

**Workflow permissions**:
- ⚪ Read repository contents and packages permissions (recommended for security)
- ⚪ Read and write permissions (if workflows need to commit)

### Discussions (Settings → General → Features)

**Current**: Disabled
**Recommendation**: Keep disabled
- Use Issues for bug reports and feature requests
- Discussions add overhead and duplicate functionality for a maintainer-only project

### Wiki (Settings → General → Features)

**Current**: Disabled
**Recommendation**: Keep disabled
- Documentation is in the `docs/` directory and versioned with code
- Wiki is not version-controlled and would be redundant

### Projects (Settings → General → Features)

**Current**: Enabled
**Recommendation**: Keep enabled
- Useful for tracking internal roadmap and task management
- Private to the maintainer

## 📝 Additional Recommendations

### Issue Labels

Consider creating these labels for better organization:
- `bug` - Something isn't working (created automatically by bug_report.yml)
- `enhancement` - New feature or request (created automatically by feature_request.yml)
- `documentation` - Improvements to documentation
- `question` - Further information is requested
- `wontfix` - This will not be worked on
- `duplicate` - This issue already exists
- `help wanted` - Community input desired (for discussion, not code)

### Topics (Settings → General → About)

Add relevant topics to help discoverability if/when the repo becomes public:
- `rust`
- `astronomy`
- `cli`
- `astronomical-calculations`
- `solar-position`
- `lunar-phases`
- `ephemeris`
- `terminal-ui`

### Repository Description

Current: "Astrotimes in Rust"
Suggested: "High-precision astronomical calculations CLI - Sun/Moon rise/set times, twilight, and lunar phases"

## 🔒 Security Settings

### Security Advisories (Settings → Security → Code security and analysis)

- **Dependency graph** - Enable (helps track vulnerabilities)
-**Dependabot alerts** - Enable (notifies of security issues)
-**Dependabot security updates** - Enable (auto-creates PRs for security fixes)

**Note**: These are available for private repos and don't conflict with the maintainer-only model since Dependabot PRs can be reviewed and merged by you.

### Code Scanning

Available on public repos or with GitHub Advanced Security. Optional for private repos.

## 📋 Summary

### Configured Automatically ✅
- Auto-delete branches on merge
- Merge method options
- Issues and Projects enabled

### Requires Manual Configuration ⚙️
1. Branch protection rules (if you have GitHub Pro)
2. Security features (Dependabot)
3. Repository description and topics
4. Issue labels

### Not Recommended 🚫
- Discussions (redundant with Issues)
- Wiki (docs are in-repo)
- Auto-merge (not needed for single maintainer)

---

**Last Updated**: 2025-10-23
**Maintainer**: @FunKite