diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 7e1728fd..912b4f4b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -4,30 +4,31 @@ about: Create a report to help us improve --- +**Environment** +- dbdeployer version: [e.g. 1.80.0] +- Go version (if building from source): [e.g. 1.21] +- OS: [e.g. macOS 14.2, Ubuntu 22.04] +- MySQL/database version: [e.g. 8.0.34] +- Flavor: [MySQL | Percona | MariaDB | NDB | PXC | TiDB] +- Topology: [single | replication | group replication | fan-in | all-masters | other] + **Describe the bug** A clear and concise description of what the bug is. -**To Reproduce** -Steps to reproduce the behavior: +**Steps to reproduce** 1. Run the command '...' 2. Run the command '...' -3. See error '....' +3. See error '...' **Expected behavior** A clear and concise description of what you expected to happen. -**NO Screenshots** -If applicable, copy and paste the command and the output. Do not use screen shots, unless they add value to the report. Text that can be edited is preferred to graphics. - -**Environment:** - - OS: [e.g. MacOs 10.12.6, Ubuntu 16.04] - - dbdeployer version - - tarball full name (e.g. mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz) - - tarball origin (from where it was downloaded) +**Actual behavior** +What actually happened. Copy and paste the command output — do not use screenshots unless they add value. Text that can be edited is preferred to graphics. -**Hardware: (if applicable)** - - Free storage - - Total RAM +**Hardware (if applicable)** +- Free storage: +- Total RAM: **Additional context** -Add any other context about the problem here. +Add any other context about the problem here (e.g. tarball full name and download origin). diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 066b2d92..d9c91e5a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -4,6 +4,14 @@ about: Suggest an idea for this project --- +**Component/provider** +Which area does this feature relate to? (check all that apply) +- [ ] MySQL (core sandbox functionality) +- [ ] ProxySQL (integration, deployment) +- [ ] Orchestrator (integration, deployment) +- [ ] PostgreSQL (future provider) +- [ ] Core (CLI, configuration, topology engine) + **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] @@ -14,4 +22,4 @@ A clear and concise description of what you want to happen. A clear and concise description of any alternative solutions or features you've considered. **Additional context** -Add any other context or screenshots about the feature request here. +Add any other context about the feature request here. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3560e46a..eb5a1485 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,11 +4,16 @@ dbdeployer is open source, and as such contributions are welcome. The following guidelines want to help and simplify the process of contributing to dbdeployer development. +## Development Setup + +- **Go 1.22+** is required to build and test dbdeployer. +- **[golangci-lint](https://golangci-lint.run/)** is required for linting. Install it following the [official instructions](https://golangci-lint.run/welcome/install/) and run `golangci-lint run` before submitting a PR. + ## Principles -1. Contributions should follow the classic GitHub workflow, i.e. forking, cloning, then submitting a Pull Request (PR) +1. Contributions should follow the classic GitHub workflow, i.e. forking, cloning, then submitting a Pull Request (PR) with the code that you propose. -2. Every new feature or bug fix should have an [issue](https://github.com/datacharmer/dbdeployer/issues), where the +2. Every new feature or bug fix should have an [issue](https://github.com/ProxySQL/dbdeployer/issues), where the improvement gets discussed before any code is written. 3. If the contribution is a quick fix, such as a grammar or spelling mistake, go right ahead and submit a PR. 4. A new feature should either have tests associated to it or state a very good reason for why not. diff --git a/README.md b/README.md index aa12913d..e6ff9ed5 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,23 @@ -[The end of dbdeployer](https://datacharmer.github.io/end-of-dbdeployer/) - # dbdeployer -[DBdeployer](https://github.com/datacharmer/dbdeployer) is a tool that deploys MySQL database servers easily. + +[DBdeployer](https://github.com/ProxySQL/dbdeployer) is a tool that deploys MySQL database servers easily. This is a port of [MySQL-Sandbox](https://github.com/datacharmer/mysql-sandbox), originally written in Perl, and re-designed from the ground up in [Go](https://golang.org). See the [features comparison](https://github.com/datacharmer/dbdeployer/blob/master/docs/features.md) for more detail. +## New Maintainer + +This project was originally created and maintained by [Giuseppe Maxia](https://github.com/datacharmer) (datacharmer). It is now actively maintained by the [ProxySQL](https://github.com/ProxySQL) team, continuing Giuseppe's excellent work while expanding the project's capabilities. + +**Roadmap highlights:** + +- ProxySQL and Orchestrator integration +- Provider-based architecture for extensible database support +- Eventual PostgreSQL support + +See the [Phase 1 milestone](https://github.com/ProxySQL/dbdeployer/milestone/1) for current progress. + Documentation updated for version 1.66.0 (26-Jul-2022 10:30 UTC) -![Build Status](https://github.com/datacharmer/dbdeployer/workflows/.github/workflows/all_tests.yml/badge.svg) +![Build Status](https://github.com/ProxySQL/dbdeployer/workflows/.github/workflows/all_tests.yml/badge.svg) - [Installation](https://github.com/datacharmer/dbdeployer/wiki/installation) - [Manual installation](https://github.com/datacharmer/dbdeployer/wiki/installation#manual-installation) diff --git a/downloads/guess_latest.go b/downloads/guess_latest.go index d95e9710..77303c80 100644 --- a/downloads/guess_latest.go +++ b/downloads/guess_latest.go @@ -19,7 +19,7 @@ type GuessInfo struct { Url string } -var allowedGuessVersions = []string{"5.7", "8.0"} +var allowedGuessVersions = []string{"5.7", "8.0", "8.4", "9.0", "9.1", "9.2"} func isAllowedForGuessing(s string) bool { for _, v := range allowedGuessVersions { diff --git a/downloads/remote_registry_test.go b/downloads/remote_registry_test.go index c6c10b83..16ece648 100644 --- a/downloads/remote_registry_test.go +++ b/downloads/remote_registry_test.go @@ -140,6 +140,14 @@ func TestFindOrGuessTarballByVersionFlavorOS(t *testing.T) { DefaultTarballRegistry.Tarballs = saveTarballCollection } +func TestNewMySQLVersionsRecognized(t *testing.T) { + versions := []string{"8.4", "9.0", "9.1", "9.2"} + for _, v := range versions { + result := isAllowedForGuessing(v) + compare.OkEqualBool(fmt.Sprintf("version %s allowed for guessing", v), result, true, t) + } +} + func TestTarballRegistry(t *testing.T) { for _, tarball := range DefaultTarballRegistry.Tarballs { diff --git a/downloads/remote_tarballs.go b/downloads/remote_tarballs.go index 103da6d3..3befc734 100644 --- a/downloads/remote_tarballs.go +++ b/downloads/remote_tarballs.go @@ -61,21 +61,21 @@ var downloadsSettings = map[TarballType]TarballDef{ NameInFile: "mysql-cluster", NameInUrl: "cluster", DownloadDir: "MySQL-Cluster-VERSION", - Versions: []string{"7.6", "8.0"}, + Versions: []string{"7.6", "8.0", "8.4", "9.0"}, }, TtMysql: { Flavor: "mysql", NameInFile: "mysql", NameInUrl: "mysql", DownloadDir: "MySQL-VERSION", - Versions: []string{"5.7", "8.0"}, + Versions: []string{"5.7", "8.0", "8.4", "9.0", "9.1", "9.2"}, }, TtShell: { Flavor: "shell", NameInFile: "mysql-shell", NameInUrl: "shell", DownloadDir: "MySQL-Shell-VERSION", - Versions: []string{"8.0"}, + Versions: []string{"8.0", "8.4", "9.0"}, }, } diff --git a/downloads/tarball_list.json b/downloads/tarball_list.json index b1f5c523..d03c0370 100644 --- a/downloads/tarball_list.json +++ b/downloads/tarball_list.json @@ -1,5 +1,5 @@ { - "DbdeployerVersion": "1.70.0", + "DbdeployerVersion": "1.74.0", "Tarballs": [ { "name": "tidb-master-darwin-amd64.tar.gz",