Skip to content

Commit 4ae6296

Browse files
authored
Merge pull request #8 from dropdevrahul/chore/oss-maintenance
docs: add OSS project docs, CI, and release automation
2 parents 8da3be6 + c8a6c41 commit 4ae6296

14 files changed

Lines changed: 535 additions & 13 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Bug report
2+
description: Report a problem with Hypr
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: Thanks for taking the time to file a bug! Please fill out the sections below.
8+
- type: textarea
9+
id: what-happened
10+
attributes:
11+
label: What happened?
12+
description: A clear description of the bug, including what you expected to happen.
13+
validations:
14+
required: true
15+
- type: textarea
16+
id: repro
17+
attributes:
18+
label: Steps to reproduce
19+
placeholder: |
20+
1. Open Hypr
21+
2. ...
22+
3. See error
23+
validations:
24+
required: true
25+
- type: input
26+
id: version
27+
attributes:
28+
label: Hypr version
29+
placeholder: e.g. v0.1.0 (or "built from source @ <commit>")
30+
validations:
31+
required: true
32+
- type: dropdown
33+
id: os
34+
attributes:
35+
label: Operating system
36+
options:
37+
- macOS
38+
- Windows
39+
- Linux
40+
validations:
41+
required: true
42+
- type: textarea
43+
id: extra
44+
attributes:
45+
label: Logs / screenshots
46+
description: Any relevant logs, error output, or screenshots.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/dropdevrahul/hypr/security/advisories/new
5+
about: Please report security issues privately, not as a public issue.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Feature request
2+
description: Suggest an idea or improvement for Hypr
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: Problem / motivation
9+
description: What are you trying to do, and what's getting in the way?
10+
validations:
11+
required: true
12+
- type: textarea
13+
id: proposal
14+
attributes:
15+
label: Proposed solution
16+
description: Describe the feature or change you'd like to see.
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: alternatives
21+
attributes:
22+
label: Alternatives considered
23+
description: Any workarounds or alternative approaches you've thought about.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## Summary
2+
3+
<!-- What does this PR do and why? -->
4+
5+
## Related issues
6+
7+
<!-- e.g. Closes #123 -->
8+
9+
## Type of change
10+
11+
- [ ] Bug fix
12+
- [ ] New feature
13+
- [ ] Documentation
14+
- [ ] Refactor / chore
15+
16+
## Checklist
17+
18+
- [ ] `go vet ./...` and `go test ./...` pass
19+
- [ ] `cd frontend && npm run build` passes (typecheck + build)
20+
- [ ] I updated `CHANGELOG.md` under **Unreleased** (if user-facing)
21+
- [ ] I updated docs where relevant
22+
23+
## Screenshots
24+
25+
<!-- For UI changes, before/after screenshots are appreciated. -->

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: ci-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
jobs:
16+
backend:
17+
name: Backend (Go)
18+
runs-on: ubuntu-22.04
19+
steps:
20+
- uses: actions/checkout@v4
21+
- uses: actions/setup-go@v5
22+
with:
23+
go-version: '1.22'
24+
cache: true
25+
- name: Vet
26+
run: go vet ./...
27+
- name: Test
28+
run: go test -race ./...
29+
30+
frontend:
31+
name: Frontend (build + typecheck)
32+
runs-on: ubuntu-22.04
33+
defaults:
34+
run:
35+
working-directory: frontend
36+
steps:
37+
- uses: actions/checkout@v4
38+
- uses: actions/setup-node@v4
39+
with:
40+
node-version: '20'
41+
cache: npm
42+
cache-dependency-path: frontend/package-lock.json
43+
- name: Install
44+
run: npm ci
45+
- name: Build (runs tsc)
46+
run: npm run build

.github/workflows/release.yml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
name: Build (${{ matrix.name }})
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- name: hypr-macos-universal
19+
platform: darwin/universal
20+
os: macos-latest
21+
- name: hypr-linux-amd64
22+
platform: linux/amd64
23+
os: ubuntu-22.04
24+
- name: hypr-windows-amd64
25+
platform: windows/amd64
26+
os: windows-latest
27+
runs-on: ${{ matrix.os }}
28+
steps:
29+
- uses: actions/checkout@v4
30+
31+
- name: Build with Wails
32+
uses: dAppServer/wails-build-action@v2.2
33+
with:
34+
build-name: hypr
35+
build-platform: ${{ matrix.platform }}
36+
go-version: '1.22'
37+
node-version: '20'
38+
wails-version: 'v2.12.0'
39+
package: false
40+
41+
- name: Archive (macOS / Linux)
42+
if: runner.os != 'Windows'
43+
run: |
44+
cd build/bin
45+
if [ "$RUNNER_OS" = "macOS" ]; then
46+
ditto -c -k --keepParent hypr.app "../../${{ matrix.name }}.zip"
47+
else
48+
tar -czf "../../${{ matrix.name }}.tar.gz" hypr
49+
fi
50+
51+
- name: Archive (Windows)
52+
if: runner.os == 'Windows'
53+
shell: pwsh
54+
run: Compress-Archive -Path build/bin/hypr.exe -DestinationPath "${{ matrix.name }}.zip"
55+
56+
- uses: actions/upload-artifact@v4
57+
with:
58+
name: ${{ matrix.name }}
59+
path: |
60+
${{ matrix.name }}.zip
61+
${{ matrix.name }}.tar.gz
62+
if-no-files-found: ignore
63+
64+
release:
65+
name: Publish release
66+
needs: build
67+
runs-on: ubuntu-latest
68+
steps:
69+
- uses: actions/download-artifact@v4
70+
with:
71+
path: dist
72+
merge-multiple: true
73+
74+
- name: Create GitHub Release
75+
uses: softprops/action-gh-release@v2
76+
with:
77+
files: dist/*
78+
generate_release_notes: true
79+
draft: false
80+
prerelease: ${{ contains(github.ref_name, '-') }}

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
build/bin
22
node_modules
33
frontend/dist
4+
5+
# OS / editor cruft
6+
.DS_Store
7+
*.swp
8+
.idea/
9+
.vscode/

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Changelog
2+
3+
All notable changes to this project are documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Complete UI redesign on Tailwind CSS + shadcn/ui (Radix), with IBM Plex typography
12+
and a reusable component kit under `frontend/src/components/ui/`.
13+
- In-app JSON syntax highlighting for response bodies and headers.
14+
- Send loading state and <kbd>Enter</kbd>-to-send in the URL field.
15+
- Go unit tests for the cURL parser and HTTP header helpers (`go test ./...`).
16+
- Continuous Integration workflow (Go vet/test + frontend build).
17+
- Cross-platform release workflow that builds macOS/Windows/Linux binaries on `v*` tags.
18+
- Contributor documentation: `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md`,
19+
issue/PR templates, and this changelog.
20+
21+
### Changed
22+
- cURL import now populates the header rows and request body of the active tab.
23+
- The response view now follows the active request tab.
24+
- The "add header" action moved next to the Request Headers title.
25+
26+
### Fixed
27+
- Request headers were serialized to an empty object and not sent; they are now sent correctly.
28+
- Corrected the application window title (`Hpyr``Hypr`).
29+
30+
## [0.0.3] - 2023-07-15
31+
### Added
32+
- Dark theme.
33+
- Support for multiple request bodies.
34+
35+
## [0.0.2] - 2023-06-22
36+
### Added
37+
- cURL import support.
38+
39+
## [0.0.1] - 2023-06-21
40+
### Added
41+
- Initial release.
42+
43+
[Unreleased]: https://github.com/dropdevrahul/hypr/compare/v0.0.3...HEAD
44+
[0.0.3]: https://github.com/dropdevrahul/hypr/compare/v0.0.2...v0.0.3
45+
[0.0.2]: https://github.com/dropdevrahul/hypr/compare/v0.0.1...v0.0.2
46+
[0.0.1]: https://github.com/dropdevrahul/hypr/releases/tag/v0.0.1

CODE_OF_CONDUCT.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our community a
6+
harassment-free experience for everyone, regardless of age, body size, visible or invisible
7+
disability, ethnicity, sex characteristics, gender identity and expression, level of experience,
8+
education, socio-economic status, nationality, personal appearance, race, religion, or sexual
9+
identity and orientation.
10+
11+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive,
12+
and healthy community.
13+
14+
## Our Standards
15+
16+
Examples of behavior that contributes to a positive environment:
17+
18+
- Demonstrating empathy and kindness toward other people
19+
- Being respectful of differing opinions, viewpoints, and experiences
20+
- Giving and gracefully accepting constructive feedback
21+
- Accepting responsibility and apologizing to those affected by our mistakes
22+
- Focusing on what is best for the overall community
23+
24+
Examples of unacceptable behavior:
25+
26+
- The use of sexualized language or imagery, and sexual attention or advances of any kind
27+
- Trolling, insulting or derogatory comments, and personal or political attacks
28+
- Public or private harassment
29+
- Publishing others' private information without explicit permission
30+
- Other conduct which could reasonably be considered inappropriate in a professional setting
31+
32+
## Enforcement Responsibilities
33+
34+
Community leaders are responsible for clarifying and enforcing our standards and will take
35+
appropriate and fair corrective action in response to any behavior that they deem inappropriate,
36+
threatening, offensive, or harmful.
37+
38+
## Scope
39+
40+
This Code of Conduct applies within all community spaces, and also applies when an individual is
41+
officially representing the community in public spaces.
42+
43+
## Enforcement
44+
45+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the
46+
maintainers at **rahul.1992.tyagi@gmail.com**. All complaints will be reviewed and investigated
47+
promptly and fairly. All community leaders are obligated to respect the privacy and security of
48+
the reporter of any incident.
49+
50+
## Attribution
51+
52+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at
53+
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
54+
55+
[homepage]: https://www.contributor-covenant.org

0 commit comments

Comments
 (0)