diff --git a/garden/install.md b/garden/install.md index f4a2a4d1e..490b5f492 100644 --- a/garden/install.md +++ b/garden/install.md @@ -57,3 +57,11 @@ Platforms supported at **best-effort** include arm architectures, Windows and macOS. See [this ticket](https://github.com/gazebo-tooling/release-tools/issues/597) for the full status. + +## Migration Guide + +Gazebo Garden is the first major release that [uses the Gazebo brand instead of Ignition](https://community.gazebosim.org/t/a-new-era-for-gazebo/1356). +So if you are upgrading from a prior release (e.g. Fortress), you will need to do some steps to migrate your packages. + +- [Guide for Migrating From Ignition](migration_from_ignition) + diff --git a/garden/migration_from_ignition.md b/garden/migration_from_ignition.md new file mode 100644 index 000000000..da81870c4 --- /dev/null +++ b/garden/migration_from_ignition.md @@ -0,0 +1,493 @@ +# Migration Guide + +Hello Gazebo community!! + +In April 2022, it was announced that [we’d be retiring the “Ignition” name in favor of “Gazebo”.](https://community.gazebosim.org/t/a-new-era-for-gazebo/1356) +This migration guide will serve you help you execute the necessary changes in your own packages, and luckily it won’t be as troublesome as the move from Gazebo Classic! + +# Overview + +## Changes + +So what’s happening in practice? In summary: + +- Whenever the name `Ignition` or `ign` is used, the Gazebo counterpart (`Gazebo` or `gz`) is used instead, preserving case +- `ign-gazebo` / `Ignition Gazebo` became `gz-sim` / `Gazebo Sim` +- The Ignition logo has been replaced by the Gazebo logo. + +These changes were made in: + +- Websites +- GitHub organizations and repositories +- Documentation +- UIs +- Namespaces, command line tools, shared libraries, directories, APIs, files + +This means that a bulk of the migration effort on a user's part will involve intelligent find-and-replaces of filenames, directories, and source code. +You may also look at the [tracking GitHub issue](https://github.com/gazebo-tooling/release-tools/issues/698) if you need to trace any changes made to support the migration in the core libraries. + +## Tick-tocks and Hard-tocks + +This section provides just an overview of the different changes made, for a more detailed listing of tick-tocks, see the migration file in each of the individual core libraries’ repositories: + +- [gz-cmake](https://github.com/gazebosim/gz-cmake/blob/main/Migration.md) +- [gz-common](https://github.com/gazebosim/gz-common/blob/main/Migration.md) +- [gz-fuel-tools](https://github.com/gazebosim/gz-fuel-tools/blob/main/Migration.md) +- [gz-gui](https://github.com/gazebosim/gz-gui/blob/main/Migration.md) +- [gz-launch](https://github.com/gazebosim/gz-launch/blob/main/Migration.md) +- [gz-math](https://github.com/gazebosim/gz-math/blob/main/Migration.md) +- [gz-msgs](https://github.com/gazebosim/gz-msgs/blob/main/Migration.md) +- [gz-physics](https://github.com/gazebosim/gz-physics/blob/main/Migration.md) +- [gz-plugin](https://github.com/gazebosim/gz-plugin/blob/main/Migration.md) +- [gz-rendering](https://github.com/gazebosim/gz-rendering/blob/main/Migration.md) +- [gz-sensors](https://github.com/gazebosim/gz-sensors/blob/main/Migration.md) +- [gz-sim](https://github.com/gazebosim/gz-sim/blob/main/Migration.md) +- [gz-tools](https://github.com/gazebosim/gz-tools/blob/main/Migration.md) +- [gz-transport](https://github.com/gazebosim/gz-transport/blob/main/Migration.md) +- [gz-utils](https://github.com/gazebosim/gz-utils/blob/main/Migration.md) +- [sdformat](https://github.com/gazebosim/sdformat/blob/main/Migration.md) + +Additionally the migration pointers in a later section of this migration guide should help you get your packages ready and working with Gazebo. + +Generally speaking, you should still be able to use either the Ignition counterpart or Gazebo counterpart for **most things** if you are using Garden, due to explicit tick-tocking logic written in the stack. +Just note that using the Ignition counterpart will generally cause deprecation warnings to be emitted. + +### Tick-tocks + +Tick-tocks for the following are implemented, though not all of them will emit deprecation warnings. +These tick-tocks are implemented either as aliases, or otherwise have some sort of redirection mechanism (e.g. symlinks, directory retargets, string replacements in source) to target the Gazebo counterpart instead. + +Also, in the source code, most of these tick-tocks will have an associated comment calling out that they are deprecated, or have a `GZ_DEPRECATED()` macro call. + + +**Namespaces** + +- Python namespaces + - e.g. `ignition.math.XXX` → `gz.math.XXX` +- C++ namespaces + - e.g. `ignition::gazebo::XXX` → `gz::sim::XXX` +- Message namespaces and packages + - e.g. `ignition.msgs.XXX` → `gz.msgs.XXX`, `ignition/msgs/header.proto` → `gz/msgs/header.proto` + +**Source** + +- Class names, members, functions, and variables in public headers + - e.g. `IgnitionFormatter` → `GzFormatter` +- Public headers + - e.g. `include/ignition` → `include/gz` +- Plugins + - e.g. `ignition::gazebo::systems::LiftDrag` → `gz::sim::systems::LiftDrag` +- Shared libraries + - e.g. `libignition-gazebo-buoyancy-engine-system.so` → `libgz-sim-buoyancy-engine-system.so` + - You may remove the `lib` and `.so` prefix and suffixes! + - e.g. `libignition-gazebo-buoyancy-engine-system.so` → `gz-sim-buoyancy-engine-system` +- C++ Macros in public headers + - e.g. `IGN_PARTITION` → `GZ_PARTITION` + +**CMake and Packaging** + +- CMake macros/functions + - e.g. `ign_find_package()` → `gz_find_package()` +- CMake macro/function arguments + - e.g. `NO_IGNITION_PREFIX` → `NO_PROJECT_PREFIX` +- CMake variables* + - e.g. `IgnOGRE2_FOUND` → `GzOGRE2_FOUND` + - Not every CMake variable is tick-tocked, but most of the ones that are used in downstream libraries are +- CMake packages found by `gz_find_package()` + - e.g. `gz_find_package(IgnCURL)` → `gz_find_package(GzCURL)` +- Debian packages + - e.g. `libignition-cmake3-dev` → `libgz-cmake3-dev` + +**Misc.** + +- Environment variables (names and values) + - e.g. `IGN_GAZEBO_RESOURCE_PATH` → `GZ_SIM_RESOURCE_PATH` +- Command line + - e.g. `ign` → `gz`, `ign gazebo` → `gz sim` +- GUI QML + - e.g. `IgnSpinBox` → `GzSpinBox` +- Topics* (typically in tests) + - e.g. `/ignition/XXX` → `/gz/XXX` + - **Note:** `/gazebo` is NOT migrated to `/sim` +- GitHub organizations and repositories + - e.g. `ignitionrobotics` → `gazebosim` , `ign-cmake` → `gz-cmake` +- GitHub actions and workflows + - e.g. `ignition-tooling` → `gazebo-tooling` +- Websites + - e.g. [ignitionrobotics.org](http://ignitionrobotics.org) → [gazebosim.org](http://gazebosim.org) +- SDF and launch tags + - e.g. `` → `` +- SDF namespaces + - e.g. `ignition:type` + + +### Hard-tocks + +There are some exceptions that have been hard-tocked instead, meaning that you **MUST** use the Gazebo counterpart. +Using the Ignition counterpart will likely cause compilation or something else to break (unless it’s just a documentation change.) + +**Namespaces** + +- Ruby namespaces + - e.g. `ignition/math` → `gz/math` + +**Source** + +- Install space + - e.g. `install/share/ignition` → `install/share/gz` + +**CMake and Packaging** + +- Most includeable CMake files in `gz-cmake` + - e.g. `IgnUtils.cmake` → `GzUtils.cmake` +- Gazebo library CMake project names + - e.g. `ignition-utils2` → `gz-utils2` +- Internally used CMake variables + - e.g. `IGN_TRANSPORT_VER` → `GZ_TRANSPORT_VER` + +**Misc.** + +- Gazebo launchfiles and tags + - e.g. `sim.ign` → `sim.gzlaunch`, ` `gzerr` +- `ignwarn` -> `gzwarn` +- `ignmsg` -> `gzmsg` +- `igndbg` -> `gzdbg` +- `ignlog` -> `gzlog` +- `ignLogInit` -> `gzLogInit` +- `ignLogClose` -> `gzLogClose` +- `ignLogDirectory` -> `gzLogDirectory` + +### Migrate SDF + +In `.sdf` files: + +```cpp +Find: