Add release metadata, about panel, and repo policies
This commit is contained in:
42
CODE_OF_CONDUCT.md
Normal file
42
CODE_OF_CONDUCT.md
Normal 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
19
LICENSE
Normal 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
|
||||
11
README.md
11
README.md
@@ -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
|
||||
|
||||

|
||||
@@ -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
40
SECURITY.md
Normal 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.
|
||||
@@ -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
|
||||
|
||||
BIN
Sources/BearWaveCore/Resources/Assets/bearwave_about.png
Executable file
BIN
Sources/BearWaveCore/Resources/Assets/bearwave_about.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user