Backstageのバージョンをアップグレードする

2025.03.15
2025.03.15
プログラミング
BackstageYarnTypescript

はじめに

今回は、Backstageのバージョンをアップグレードする方法について説明します。

Backstage自体については、下記の記事を参照してください。

【CNCF】Backstage触ってみた(Software Catalog)

【CNCF】Backstage触ってみた(Software Catalog)

はじめに CNCF プロジェクトの一つである、Backstage についてざっくり紹介して、メイ

Backstageのバージョン

Backstageは大体1ヶ月に1回のペースでバージョンアップされています。結構な頻度で更新されているのでなるべく最新のバージョンに追いつけるようにしておきたいです。

Backstage自体は、単体のパッケージではなく、複数のパッケージからなるアプリケーションなので、バージョンアップする際には複数のパッケージをアップグレードしつつ、@backstage/create-appで作成したテンプレートの最新版を取り込む必要があります。

backstage-cliでバージョンアップ

まずは、backstage-cliを使って@backstageパッケージのバージョンをまとめてアップグレードします。

1yarn backstage-cli versions:bump

@backstage/*のパッケージ以外にプラグインを使っている場合は、--patternオプションでパターンを指定してアップグレードできます。

1yarn backstage-cli versions:bump --pattern '@{backstage,roadiehq}/*'

create-app templateの差分反映

次に、@backstage/create-appで作成されるテンプレートの最新版までの差分を取り込みます。

すでに開発しているBackstageアプリケーションは、最初に作成されたタイミングでのテンプレートを元にしているため、その後のテンプレートの変更点を取り込む必要があります。こちらは、backstage-cliで自動で行うなどはできないため、backstage/create-appchangelogを確認、もしくはBackstgage Upgrade Helperを使って手動で差分を確認して取り込む必要があります。

全ての変更が自分のBackstageに関係あるとは限らないので、changelogBackstgage Upgrade Helperを確認しつつ、必要な部分を変更していく必要があると思います。

実際にサンプルで試してみる

サンプル用に作成したBackstageがあったので、こちらを使ってバージョンアップを試してみます。

GitHub - monda00/backstage-sample

GitHub - monda00/backstage-sample

Contribute to monda00/backstage-sample development by creating an account on GitHub.

現在(2025/03/15)の最新バージョンは、1.36.1ですが、サンプルは1年ぐらい前に作成したものだったので、バージョンが1.25.0とかなり古くなってました。

まずは、backstage-cliを使ってバージョンアップを行います。

1yarn backstage-cli versions:bump
2yarn run v1.22.22
3
4Using default pattern glob @backstage/*
5Checking for updates of @backstage/app-defaults
6Checking for updates of @backstage/catalog-model
7Checking for updates of @backstage/cli
8Checking for updates of @backstage/core-app-api
9Checking for updates of @backstage/core-components
10Checking for updates of @backstage/core-plugin-api
11Checking for updates of @backstage/integration-react
12Checking for updates of @backstage/plugin-api-docs
13Checking for updates of @backstage/plugin-catalog
14Checking for updates of @backstage/plugin-catalog-common
15
16...
17
18
19  @backstage/plugin-permission-common : 0.7.13 ~> 0.8.4
20    https://github.com/backstage/backstage/blob/master/plugins/permission-common/CHANGELOG.md
21
22  @backstage/plugin-permission-node : 0.7.29 ~> 0.8.8
23    https://github.com/backstage/backstage/blob/master/plugins/permission-node/CHANGELOG.md
24
25  @backstage/plugin-proxy-backend : 0.4.16 ~> 0.5.11
26    https://github.com/backstage/backstage/blob/master/plugins/proxy-backend/CHANGELOG.md
27
28  @backstage/plugin-search-backend-module-catalog : 0.1.24 ~> 0.3.1
29    https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-catalog/CHANGELOG.md
30
31  @backstage/plugin-search-backend-module-techdocs : 0.1.23 ~> 0.3.6
32    https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-techdocs/CHANGELOG.md
33
34  @backstage/theme : 0.5.5 ~> 0.6.4
35    https://github.com/backstage/backstage/blob/master/packages/theme/CHANGELOG.md
36
37Version bump complete!
38
39✨  Done in 48.56s.

差分は下記のコミットから確認できます。Backstage自体のバージョン(backstage.jsonに記載されているバージョン)と、@backstage/*のパッケージのバージョンがアップグレードされていることが確認できます。

Update Backstage version using backstage-cli · monda00/backstage-sample@25e44e8

Update Backstage version using backstage-cli · monda00/backstage-sample@25e44e8

Contribute to monda00/backstage-sample development by creating an account on GitHub.

次に、下記のBackstage Upgrade Helperを使って、1.25.0から1.36.1までの差分を確認して、必要な変更を取り込みます。

Upgrade Backstage applications

実際に取り込んだ変更は下記のコミットから確認できます。Yarnのバージョンが上がって、Lernnが使われなくなったり、Dockerfileの変更があったり、パッケージもいくつかバージョンが上がってたり、使われなくなってたりしました。

unknown link

まとめ

Backstageのバージョンアップは、backstage-cliを使って@backstage/*のパッケージをアップグレードし、@backstage/create-appで作成されるテンプレートの差分を取り込む必要があります。

パッケージのアップグレードはbackstage-cliで自動で行えますが、テンプレートの差分取り込みは手動で行う必要があるため、こまめにアップグレードしておかないと、差分が大きくなってしまうので注意が必要そうでした。

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee