Add release metadata, about panel, and repo policies

This commit is contained in:
Sebastian Palencsar
2026-06-25 09:48:58 +02:00
parent c5cd05479b
commit 8889efb8ac
7 changed files with 140 additions and 2 deletions

42
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,42 @@
# Code of Conduct
## Our Standard
This project expects contributors and maintainers to keep discussion technical,
respectful, and free of harassment.
In this repository:
- be direct, but do not be abusive
- criticize code and decisions, not people
- avoid insults, intimidation, and personal attacks
- assume good faith until there is a concrete reason not to
- keep public threads useful for maintainers and contributors
## Unacceptable Behavior
Examples include:
- harassment or discrimination
- sexualized language or imagery
- threats or intimidation
- sustained personal attacks
- doxxing or publishing private information without consent
- deliberately disruptive or hostile communication
## Maintainer Enforcement
Project maintainers may remove, edit, or reject comments, issues, pull
requests, or other contributions that violate this code of conduct.
Depending on severity, maintainers may:
- ask for a correction
- lock or moderate a discussion
- reject a contribution
- temporarily or permanently block further participation
## Reporting
If someone is violating this code of conduct, contact the maintainer through
the repository owner profile instead of escalating the situation publicly.

19
LICENSE Normal file
View File

@@ -0,0 +1,19 @@
BearWave for macOS
Copyright (C) 2026 Sebastian
SPDX-License-Identifier: GPL-3.0-or-later
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see:
https://www.gnu.org/licenses/gpl-3.0.txt

View File

@@ -7,6 +7,8 @@ same product idea as the Linux version: quick station discovery, lightweight
playback, favorites, recents, and native desktop integration without turning
the app into a general-purpose audio suite.
Current release target: `v0.1.0-alpha.1`
## Screenshots
![Main station browser](screens/screen1.png)
@@ -45,6 +47,13 @@ That means:
- native macOS behavior is preferred over KDE/Qt parity
- podcast features are intentionally out of scope
## License
This project follows the upstream BearWave licensing direction and is licensed
under **GPL-3.0-or-later**.
See [LICENSE](LICENSE).
## Build
```bash
@@ -122,6 +131,8 @@ Still pragmatic rather than release-ready:
- debug-oriented signing and packaging
- custom app-bundle staging script
This repository is currently in an **early alpha** state.
## Roadmap
- improve release packaging, signing, and notarization

40
SECURITY.md Normal file
View File

@@ -0,0 +1,40 @@
# Security Policy
## Supported Versions
This repository is currently in an early alpha stage.
Security fixes are expected on:
- the current `main` branch
- the newest tagged pre-release, when one exists
Older snapshots may not receive backported fixes.
## Reporting a Vulnerability
Please do **not** open a public issue for a suspected security problem before
the maintainer has had a chance to assess it.
Preferred process:
1. Report the issue privately through your forge's private reporting workflow, if available.
2. If private reporting is not available, contact the maintainer through the repository owner profile first.
3. Include:
- affected version or commit
- reproduction steps
- impact
- any workaround, if known
## Scope
Relevant security reports include:
- credential or token leakage
- unsafe network handling
- update or packaging integrity issues
- sandbox, entitlement, or macOS permission mistakes
- malicious or unintended code execution paths
Reports that are only stream-quality, broken station metadata, or ordinary
playback bugs should go through the normal issue tracker.

View File

@@ -4,6 +4,8 @@ import SwiftUI
@main
struct BearWaveApp: App {
private static let releaseVersion = "v0.1.0-alpha.1"
private static let buildVersion = "1"
@NSApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
@State private var model = AppModel()
@State private var isMiniPlayer = false
@@ -32,6 +34,11 @@ struct BearWaveApp: App {
}
.defaultSize(width: Self.windowWidth, height: 720)
.commands {
CommandGroup(replacing: .appInfo) {
Button("About BearWave") {
showAboutPanel()
}
}
CommandGroup(after: .appTermination) {
Button("Play/Pause") {
model.playback.togglePlayPause()
@@ -58,6 +65,22 @@ struct BearWaveApp: App {
}
}
private func showAboutPanel() {
var options: [NSApplication.AboutPanelOptionKey: Any] = [
.applicationName: "BearWave",
.applicationVersion: Self.releaseVersion,
.version: "Build \(Self.buildVersion)"
]
if let iconURL = Bundle.main.url(forResource: "bearwave_about", withExtension: "png"),
let icon = NSImage(contentsOf: iconURL) {
options[.applicationIcon] = icon
}
NSApp.orderFrontStandardAboutPanel(options: options)
NSApp.activate(ignoringOtherApps: true)
}
private func resizeWindow(toMini: Bool) {
let targetSize = toMini ? CGSize(width: 555, height: 110) : CGSize(width: Self.windowWidth, height: 720)
Task { @MainActor in

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -5,6 +5,8 @@ MODE="${1:-run}"
APP_NAME="BearWave"
BUNDLE_ID="com.spalencsar.BearWave"
MIN_SYSTEM_VERSION="26.0"
APP_VERSION="0.1.0-alpha.1"
APP_BUILD="1"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
DIST_DIR="$ROOT_DIR/dist"
@@ -29,6 +31,7 @@ chmod +x "$APP_BINARY"
cp "$ROOT_DIR/Sources/BearWaveCore/Resources/Assets/bearwave.png" "$APP_RESOURCES/BearWave.png"
cp "$ROOT_DIR/Sources/BearWaveCore/Resources/Assets/bearwave.png" "$APP_RESOURCES/bearwave.png"
cp "$ROOT_DIR/Sources/BearWaveCore/Resources/Assets/bearwave_about.png" "$APP_RESOURCES/bearwave_about.png"
cp "$ROOT_DIR/Sources/BearWaveCore/Resources/Assets/bearwave_line.png" "$APP_RESOURCES/bearwave_line.png"
cp "$ROOT_DIR/AppIcon.icns" "$APP_RESOURCES/AppIcon.icns"
for lproj in "$ROOT_DIR"/Sources/BearWaveCore/Resources/*.lproj; do
@@ -56,9 +59,9 @@ cat >"$INFO_PLIST" <<PLIST
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<string>$APP_VERSION</string>
<key>CFBundleVersion</key>
<string>1</string>
<string>$APP_BUILD</string>
<key>LSMinimumSystemVersion</key>
<string>$MIN_SYSTEM_VERSION</string>
<key>NSPrincipalClass</key>