# 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).