- AGE encryption with master password model - Core commands: init, show, insert, edit, generate, rm, mv, cp, find, grep, ls - Git integration for version control - Clipboard support (X11 and Wayland) - Secure password generation - Backup and restore functionality - Comprehensive security features - Complete documentation
124 lines
3.1 KiB
Markdown
124 lines
3.1 KiB
Markdown
# Repository Setup Guide
|
|
|
|
**For Contributors:** This guide helps you set up the PassAGE repository for git.
|
|
|
|
**Note:** This is for developers setting up the repository. End users should see [INSTALL.md](INSTALL.md).
|
|
|
|
## Initial Git Setup
|
|
|
|
```bash
|
|
# Initialize git repository
|
|
git init
|
|
|
|
# Add all files (respects .gitignore)
|
|
git add .
|
|
|
|
# Create initial commit
|
|
git commit -m "Initial commit: PassAGE password manager"
|
|
|
|
# Add remote repository (replace with your actual repo URL)
|
|
git remote add origin https://git.fraggle.lol/fraggle/PassAGE.git
|
|
|
|
# Push to remote
|
|
git push -u origin main
|
|
```
|
|
|
|
## What Gets Committed
|
|
|
|
### Source Files (Committed)
|
|
- All `.go` files (source code)
|
|
- `go.mod` and `go.sum` (dependency management)
|
|
- `Makefile` (build configuration)
|
|
- `passage.1.md` (manpage source)
|
|
- All `.md` documentation files
|
|
|
|
### Excluded Files (.gitignore)
|
|
- `passage` (compiled binary)
|
|
- `passage.1` (compiled manpage)
|
|
- Build artifacts
|
|
- IDE files
|
|
- Test coverage files
|
|
|
|
## Verifying Build Readiness
|
|
|
|
Before pushing, verify the repository can build on a clean system:
|
|
|
|
```bash
|
|
# Clean everything
|
|
make clean
|
|
rm -rf vendor/
|
|
|
|
# Verify dependencies
|
|
go mod verify
|
|
go mod tidy
|
|
|
|
# Test build
|
|
go build -o passage .
|
|
|
|
# Test installation
|
|
make install-user
|
|
|
|
# Clean up
|
|
make clean
|
|
```
|
|
|
|
## CI/CD Setup
|
|
|
|
The repository includes a GitHub Actions workflow (`.github/workflows/build.yml`) that:
|
|
- Tests builds on Linux, macOS, and Windows
|
|
- Tests with multiple Go versions
|
|
- Verifies dependencies
|
|
- Builds release binaries
|
|
|
|
This will run automatically on push/PR.
|
|
|
|
## Repository Structure
|
|
|
|
```
|
|
passage/
|
|
├── .gitignore # Git ignore rules
|
|
├── .github/
|
|
│ └── workflows/
|
|
│ └── build.yml # CI/CD workflow
|
|
├── *.go # Source code files
|
|
├── go.mod # Go module definition
|
|
├── go.sum # Dependency checksums
|
|
├── Makefile # Build and install targets
|
|
├── passage.1.md # Manpage source
|
|
├── README.md # Main documentation
|
|
├── INSTALL.md # Installation guide
|
|
├── CONTRIBUTING.md # Contribution guidelines
|
|
├── SECURITY.md # Security documentation
|
|
└── CHANGELOG.md # Version history
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
1. **Repository URLs are already configured:**
|
|
- All documentation points to `https://git.fraggle.lol/fraggle/PassAGE`
|
|
- Update GitHub Actions workflow if using GitHub instead
|
|
|
|
2. **Create GitHub repository:**
|
|
- Create a new repository on GitHub
|
|
- Don't initialize with README (we already have one)
|
|
|
|
3. **Push code:**
|
|
```bash
|
|
git push -u origin main
|
|
```
|
|
|
|
4. **Set up releases:**
|
|
- Create tags for versions: `git tag v0.1.0`
|
|
- Push tags: `git push --tags`
|
|
- GitHub Actions will build release binaries
|
|
|
|
## Building on Any System
|
|
|
|
The repository is designed to build on any system with:
|
|
- Go 1.21+ installed
|
|
- Standard Unix tools (make, etc.)
|
|
|
|
Dependencies are managed through `go.mod` and will be downloaded automatically.
|
|
|
|
For manpage building, users need `pandoc` or `go-md2man` (optional).
|