| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 8eaced1 commit 219959a
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,32 @@ | |||
| 1 | + # Contributing | ||
| 2 | + | ||
| 3 | + ## Flutter version | ||
| 4 | + | ||
| 5 | + CI pins a **stable** Flutter version in [`.github/workflows/ci.yml`](.github/workflows/ci.yml) and [`.github/workflows/release.yml`](.github/workflows/release.yml). Prefer matching that version locally to avoid “works on my machine” drift. When bumping the pin, run `flutter test` and a release smoke build before merging. | ||
| 6 | + | ||
| 7 | + ## Linux: `flutter analyze` and “Too many open files” | ||
| 8 | + | ||
| 9 | + On some Linux setups the Dart analysis server hits the process **open file limit** (`errno = 24`). Try: | ||
| 10 | + | ||
| 11 | + ```bash | ||
| 12 | + ulimit -n 8192 | ||
| 13 | + flutter analyze | ||
| 14 | + ``` | ||
| 15 | + | ||
| 16 | + ## Git tags and release commits | ||
| 17 | + | ||
| 18 | + A **tag points at one commit**. Release artifacts are built from the tree at that commit. If you fix something **after** pushing a release tag, either: | ||
| 19 | + | ||
| 20 | + - move the tag to the new commit (only if the team agrees and the release is not yet consumed), or | ||
| 21 | + - ship a **new** semver (update `pubspec.yaml` / `CHANGELOG.md`) and push a **new** tag. | ||
| 22 | + | ||
| 23 | + See [docs/tags-and-releases.md](docs/tags-and-releases.md). | ||
| 24 | + | ||
| 25 | + ## Tests | ||
| 26 | + | ||
| 27 | + ```bash | ||
| 28 | + flutter pub get | ||
| 29 | + flutter test | ||
| 30 | + ``` | ||
| 31 | + | ||
| 32 | + Widget tests that use SQLite or `path_provider` follow patterns in `test/features/connections/connections_panel_layout_test.dart` and `test/flutter_test_config.dart` (in-memory secrets backend). | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -80,9 +80,11 @@ flutter build macos | |||
| 80 | 80 | |------|-------------| | |
| 81 | 81 | | `lib/main.dart` | App entry, window setup (bitsdojo_window) | | |
| 82 | 82 | | `lib/app/` | App shell and theme | | |
| 83 | - | `lib/features/main_screen/` | Main layout, connections panel, new connection dialog, query/results tabs | | ||
| 84 | - | `lib/shared/widgets/` | Shared UI (shadcn re-exports) | | ||
| 85 | - | `lib/core/theme/` | Dark theme and colors | | ||
| 83 | + | `lib/features/main_screen/` | Main layout, workspace panel, query/results tabs | | ||
| 84 | + | `lib/features/connections/` | Connection tree, new connection / folder flows, driver manager | | ||
| 85 | + | `lib/features/postgresql/`, `mysql/`, `redis/`, `mongodb/` | Per-engine workspace and browser UI | | ||
| 86 | + | `lib/shared/widgets/` | Shared UI (shadcn re-exports, app dialog) | | ||
| 87 | + | `lib/core/` | Database clients, local storage, theme, editor helpers | | ||
| 86 | 88 | | `assets/images/` | Database type icons (PostgreSQL, MySQL, Redis, MongoDB) | | |
| 87 | 89 | | `linux/`, `windows/`, `macos/` | Native runners (custom frame on Linux/Windows) | | |
| 88 | 90 | ||
@@ -96,3 +98,5 @@ flutter build macos | |||
| 96 | 98 | - [User guide](docs/user-guide.md) | |
| 97 | 99 | - [Releases](docs/tags-and-releases.md) | |
| 98 | 100 | - [Release checklist](docs/release-checklist.md) | |
| 101 | + - [Contributing](CONTRIBUTING.md) (Flutter pin, tags, local analyze) | ||
| 102 | + - [Roadmap](docs/roadmap.md) | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,17 @@ | |||
| 1 | + # macOS signing and notarization (future track) | ||
| 2 | + | ||
| 3 | + CI currently produces a **macOS zip** with an **unsigned** `.app`. Users may need to use **Open** from the context menu the first time, or adjust Gatekeeper settings. | ||
| 4 | + | ||
| 5 | + ## Goal for broader distribution | ||
| 6 | + | ||
| 7 | + 1. **Apple Developer Program** membership and certificates (Developer ID Application). | ||
| 8 | + 2. **Code sign** the app bundle and nested frameworks (`flutter build macos` output). | ||
| 9 | + 3. **Notarize** with `notarytool` / `xcrun notarytool`, then staple the ticket. | ||
| 10 | + 4. Store signing secrets in **GitHub Actions** encrypted secrets; run signing in `release.yml` only on protected branches/tags. | ||
| 11 | + | ||
| 12 | + ## References | ||
| 13 | + | ||
| 14 | + - Flutter: [Build and release a macOS app](https://docs.flutter.dev/deployment/macos) | ||
| 15 | + - Apple: notarization and hardened runtime requirements | ||
| 16 | + | ||
| 17 | + This repository does not yet automate signing; treat this file as a checklist when the project is ready to invest in that workflow. | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -12,16 +12,19 @@ Use this before tagging or running the **Release** workflow. | |||
| 12 | 12 | ||
| 13 | 13 | ## Automated | |
| 14 | 14 | ||
| 15 | - - [ ] `flutter analyze` — clean. | ||
| 15 | + - [ ] `flutter analyze` — clean (on Linux, if the analyzer crashes with **Too many open files**, try `ulimit -n 8192`; see [CONTRIBUTING.md](../CONTRIBUTING.md)). | ||
| 16 | 16 | - [ ] `flutter test` — all green. | |
| 17 | + - [ ] CI **Flutter version** in `.github/workflows/*.yml` matches the toolchain you validated (bump intentionally when upgrading stable). | ||
| 17 | 18 | ||
| 18 | 19 | ## Versioning and release | |
| 19 | 20 | ||
| 20 | 21 | - [ ] `pubspec.yaml` `version` matches the release you intend to ship. | |
| 22 | + - [ ] **Tag** is placed on the **commit that includes all fixes** you want in binaries (a tag does not auto-include later commits; see [CONTRIBUTING.md](../CONTRIBUTING.md)). | ||
| 21 | 23 | - [ ] Run the **Release** workflow from GitHub Actions (see [tags-and-releases.md](tags-and-releases.md)). | |
| 22 | 24 | - [ ] Verify **Linux** and **Windows** zip artifacts and `SHA256SUMS.txt` on the GitHub Release. | |
| 23 | 25 | ||
| 24 | 26 | ## Docs | |
| 25 | 27 | ||
| 26 | 28 | - [ ] [security.md](security.md) still matches behavior if storage changed. | |
| 27 | 29 | - [ ] [README.md](../README.md) prerequisites (e.g. Linux deps) still accurate. | |
| 30 | + - [ ] [roadmap.md](roadmap.md) updated if you are communicating upcoming themes externally. | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,28 @@ | |||
| 1 | + # Product roadmap (draft) | ||
| 2 | + | ||
| 3 | + Living document for planned work. Not a commitment order; adjust as priorities change. | ||
| 4 | + | ||
| 5 | + ## Query history and favorites | ||
| 6 | + | ||
| 7 | + - Persist **recent SQL statements per connection** (or per connection + database) in local SQLite with a configurable cap (e.g. last 50–200 entries). | ||
| 8 | + - UI: dropdown or side panel in SQL workspace to recall, pin “favorites”, and clear history. | ||
| 9 | + - Respect existing **security** model: do not log secrets; optional opt-out. | ||
| 10 | + | ||
| 11 | + ## Result export | ||
| 12 | + | ||
| 13 | + - From results grids (PostgreSQL / MySQL / others): **Export visible page or full result** to CSV and optionally JSON, with a safe row cap aligned with `AppSettings` max rows. | ||
| 14 | + - File picker for save location; desktop-friendly default filename (connection, timestamp). | ||
| 15 | + | ||
| 16 | + ## SSH and advanced networking | ||
| 17 | + | ||
| 18 | + - **Today:** the app does not embed SSH tunnels or jump hosts (see [security.md](security.md)). | ||
| 19 | + - **Near term:** expand user-facing docs with recipes: `ssh -L`, cloud provider consoles, VPN. | ||
| 20 | + - **Later (if demand):** optional “local proxy command” or documented integration with external tools; avoid shipping full SSH client scope unless clearly justified. | ||
| 21 | + | ||
| 22 | + ## Connections tree maintainability | ||
| 23 | + | ||
| 24 | + - Continue splitting `connections_panel` library parts as needed; keep behavior and tests green after refactors. | ||
| 25 | + | ||
| 26 | + ## macOS distribution | ||
| 27 | + | ||
| 28 | + - Unsigned builds require extra steps for end users; see [macos-signing.md](macos-signing.md) for a future signing/notarize track. | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments