Docs localization migration from pagure.io to forge.fedoraproject.org #52

Open
opened 2026-02-19 17:59:00 +00:00 by peartown · 46 comments
Owner

A tracking issue for the migration of Docs localization repositories from pagure.io to the new Fedora Forge.

Progress of the migration is mostly recorded in the comments. If there was a need, another issue can be filed (and linked as dependency).

The plan is:

  • to migrate the repositories in an order of the Docs website site.yml file
  • to create the (migrated) repositories in the forge as (pull) mirrors of the repositories in pagure
  • to make changes of settings in the translation projects of the Fedora translation platform (Weblate)
  • to make changes to the translations-scripts
  • to make the repositories in the forge the authoritative source(s) for the Fedora Docs localization
  • to abandon the pagure repositories

List of (scheduled?) tasks:

  • migrate repositories from pagure to forge
    • create repo(s) as mirror(s)
    • remove mirroring settings
    • retire/close pagure's repos
  • stop the translation automation
    • infra ticket
    • announcement in Fedora Discussion
  • lock repositories in Weblate
    • inform translators in components
  • update translations-scripts
    • migrate the repo to forge docs org
  • change settings of repositories in Weblate
  • start the translation automation

Migrated repositories: Table moved to a wiki page

A tracking issue for the migration of [Docs localization](https://pagure.io/projects/fedora-docs-l10n/*) repositories from pagure.io to the new [Fedora Forge](https://forge.fedoraproject.org/localization-docs). Progress of the migration is mostly recorded in the comments. If there was a need, another issue can be filed (and linked as dependency). The plan is: - to migrate the repositories in an order of the Docs website [site.yml](https://gitlab.com/fedora/docs/docs-website/docs-fp-o/-/blob/prod/site.yml?ref_type=heads) file - to create the (migrated) repositories in the forge as (pull) mirrors of the repositories in pagure - to make changes of settings in the translation projects of the Fedora [translation platform](https://translate.fedoraproject.org) (Weblate) - to make changes to the [translations-scripts](https://pagure.io/fedora-docs/translations-scripts/tree/master) - to make the repositories in the forge the authoritative source(s) for the Fedora Docs localization - to abandon the pagure repositories List of (scheduled?) tasks: - [x] migrate repositories from pagure to forge - [x] create repo(s) as mirror(s) - [x] remove mirroring settings - [ ] retire/close pagure's repos - [x] stop the translation automation - [x] infra ticket - [x] announcement in Fedora Discussion - [x] lock repositories in Weblate - [x] inform translators in components - [x] update translations-scripts - [x] migrate the repo to forge docs org - [x] change settings of repositories in Weblate - [x] start the translation automation [Migrated repositories](https://forge.fedoraproject.org/localization/tickets/wiki/Docs-Localization): Table moved to a wiki page
Author
Owner

The plan is, of course, a subject of a discussion and/or modification.

The plan is, of course, a subject of a discussion and/or modification.
Owner

there is a ticket to open for infrastructure team to stop the current automation system. I will open it and link it to this ticket.
I will have to migrate the script by opening a pull request on https://pagure.io/fedora-docs/translations-scripts/ (should we migrate this repository first?)

I suggest to lock all docs repositories in Weblate until our migration is done, and publish a message on top of each components linking to #52 (without sending email to users, we don't want to spam them ;))

after each repository migration, we can remove the message and unlock the repository

there is a ticket to open for infrastructure team to stop the current automation system. I will open it and link it to this ticket. I will have to migrate the script by opening a pull request on https://pagure.io/fedora-docs/translations-scripts/ (should we migrate this repository first?) I suggest to lock all docs repositories in Weblate until our migration is done, and publish a message on top of each components linking to #52 (without sending email to users, we don't want to spam them ;)) after each repository migration, we can remove the message and unlock the repository
Author
Owner

Is it meant that we want have translation-scripts under localization-docs (not docs) in the forge?

I thought if the repositories would be mirroring the ones in pagure, we could wait with the locking repos in Weblate and the locks could not last long. The translation will be present in both forgejo and pagure. But I have no strong opinion here. It would resemble a 'big bang' approach. On the other hand, when we make locks in Weblate, we can 'a pilot' or 'POC' any one selected repository and see if everything in the chain (source -script - pot/po - script - translated sources) works. And if it works we can remove the lock for the repository.

I have to warn that I might not be very quick with preparing the repositories in either forge and Weblate. ;)

I am also not sure if I will be able to create the mirrors without authentization (permissions) to the pagure's fedora-docs-l10n repositories.

Is it meant that we want have translation-scripts under `localization-docs` (not `docs`) in the forge? I thought if the repositories would be mirroring the ones in pagure, we could wait with the locking repos in Weblate and the locks could not last long. The translation will be present in both forgejo and pagure. But I have no strong opinion here. It would resemble a 'big bang' approach. On the other hand, when we make locks in Weblate, we can 'a pilot' or 'POC' any one selected repository and see if everything in the chain (source -script - pot/po - script - translated sources) works. And if it works we can remove the lock for the repository. I have to warn that I might not be very quick with preparing the repositories in either forge and Weblate. ;) I am also not sure if I will be able to create the mirrors without authentization (permissions) to the pagure's fedora-docs-l10n repositories.
Member

It is possible to pull from Pagure to Forgejo without permissions, but to push back indeed requires privileges. See Pulling from a remote repository, and the following section, from Forgejo docs.

It is possible to pull from Pagure to Forgejo without permissions, but to push back indeed requires privileges. See [Pulling from a remote repository](https://forgejo.org/docs/v11.0/user/repo-mirror/#pulling-from-a-remote-repository), and the following section, from Forgejo docs.
Author
Owner

I hope we do not need to push, at least for now.

I hope we do not need to push, at least for now.
Author
Owner

@jibecfed wrote in #52 (comment):

I will have to migrate the script by opening a pull request on https://pagure.io/fedora-docs/translations-scripts/ (should we migrate this repository first?)

Sorry, I have read this again now. I misunderstood before, I guess. You speak about migration by a pull request. So now I assume the repository will finally stay under the docs org (namespace) - under the Docs team responsibility. And you will use PR to adapt the scripts as they will work with our migrated repositories under the localization-docs...?

Originally, my idea was that we will create (migrate) all the pagure.io/projects/fedora-docs-l10n repositories to the forge.fp.o/localization-docs and make them mirroring the ones (old) in pagure. And we could work in the 'background' on the changes, while the translation automation would not have to be stopped for the Docs website. But today I have doubts that we can migrate the repositories to the forge and make them mirrors of the pagure ones. So, maybe, we will have to stop the translation automation and change the translations-scripts first, as you suggested. Then migrate repositories 'normally' and work further on the changes in the repositories and weblate. After we will have everything ready, then restart the translation automation.

@jibecfed wrote in https://forge.fedoraproject.org/localization/tickets/issues/52#issuecomment-537211: > I will have to migrate the script by opening a pull request on https://pagure.io/fedora-docs/translations-scripts/ (should we migrate this repository first?) Sorry, I have read this again now. I misunderstood before, I guess. You speak about migration by a pull request. So now I assume the repository will finally stay under the `docs` org (namespace) - under the Docs team responsibility. And you will use PR to adapt the scripts as they will work with `our` migrated repositories under the `localization-docs`...? Originally, my idea was that we will create (migrate) all the pagure.io/projects/fedora-docs-l10n repositories to the forge.fp.o/localization-docs and make them mirroring the ones (old) in pagure. And we could work in the 'background' on the changes, while the translation automation would not have to be stopped for the Docs website. But today I have doubts that we can migrate the repositories to the forge and make them mirrors of the pagure ones. So, maybe, we will have to stop the translation automation and change the translations-scripts first, as you suggested. Then migrate repositories 'normally' and work further on the changes in the repositories and weblate. After we will have everything ready, then restart the translation automation.
Author
Owner

This is a draft of the announcement which could be published in the Fedora Discussion announcements category. It could also serve as a base for information on the Weblate. Comments, suggestions.... are welcome.


Fedora Documentation translations are not available

Fedora Documentation translations are put on hold as the Fedora Localization Team has started the process of migration from pagure.io to the Fedora Forge. Translation projects of the documentation are locked on the Fedora translation platform. No translation updates can be found in languages on the Fedora Documentation.

The migration involves all repositories which support and ensure the availability of translations of the Fedora Documentation. There is no possibility the migration can be performed 'on the fly' as changes in the repositories, related scripts and continuous integration with the translation platform cannot be dealt with independently. Therefore the translation process of the Fedora Documentation is kept on hold.

We regrettably ask the Fedora contributors, our translation community, to pull back from translating of the Fedora Documentation and wait till the translation automation of the documentation is resumed again.

The progress of migration can be followed in the localization tracker as issue #52.

This is a draft of the announcement which could be published in the Fedora Discussion announcements category. It could also serve as a base for information on the Weblate. Comments, suggestions.... are welcome. ---- Fedora Documentation translations are not available [Fedora Documentation](https://docs.fedoraproject.org) translations are put on hold as the Fedora Localization Team has started the process of migration from pagure.io to the [Fedora Forge](https://forge.fedoraproject.org). Translation projects of the documentation are locked on the [Fedora translation platform](https://translate.fedoraproject.org). No translation updates can be found in languages on the Fedora Documentation. The migration involves all [repositories](pagure.io/projects/fedora-docs-l10n/*) which support and ensure the availability of translations of the Fedora Documentation. There is no possibility the migration can be performed 'on the fly' as changes in the repositories, related scripts and continuous integration with the translation platform cannot be dealt with independently. Therefore the translation process of the Fedora Documentation is kept on hold. We regrettably ask the Fedora contributors, our translation community, to pull back from translating of the Fedora Documentation and wait till the translation automation of the documentation is resumed again. The progress of migration can be followed in the localization tracker as issue [#52](https://forge.fedoraproject.org/localization/tickets/issues/52).
Author
Owner

To migrate a repository from pagure to the forge so as the (new) migrated repository in the forge is a (pull] mirror of the (old) one repository in the pagure:

  1. Select New Migration in the Create… menu on the top right.
  2. Select the Git (first option) remote repository service. (Do not select Pagure.)
  3. Enter a repository URL.
  4. Check the box This repository will be a mirror.
  5. Select Migrate repository to save the configuration.
To migrate a repository from pagure to the forge so as the (new) migrated repository in the forge is a (pull] mirror of the (old) one repository in the pagure: 1. Select New Migration in the Create… menu on the top right. 2. Select the Git (first option) remote repository service. (Do not select Pagure.) 3. Enter a repository URL. 4. Check the box This repository will be a mirror. 5. Select Migrate repository to save the configuration.
Author
Owner

All repositories from pagure created in the forge - as mirrors; the aim was to preserve the history of changes which can occur before we finally are ready to run translation automation using the (new) repos, thus to make the necessary locking translations in weblate as short as possible.

All repositories from pagure created in the forge - as mirrors; the aim was to preserve the history of changes which can occur before we finally are ready to run translation automation using the (new) repos, thus to make the necessary locking translations in weblate as short as possible.
Owner

I migrated a few docs repositories to forgejo (only those related to translations)

https://pagure.io/fedora-docs/localization
migrated as https://forge.fedoraproject.org/docs/localization-stats

https://pagure.io/fedora-docs/translations-scripts
migrated as https://forge.fedoraproject.org/docs/translations-scripts

https://pagure.io/fedora-docs/translated-sources/
migrated as https://forge.fedoraproject.org/docs/translated-sources

I created a request to infrastructure team to change the current automation to use these new repositories: infra/tickets#13171

I migrated a few docs repositories to forgejo (only those related to translations) https://pagure.io/fedora-docs/localization migrated as https://forge.fedoraproject.org/docs/localization-stats https://pagure.io/fedora-docs/translations-scripts migrated as https://forge.fedoraproject.org/docs/translations-scripts https://pagure.io/fedora-docs/translated-sources/ migrated as https://forge.fedoraproject.org/docs/translated-sources I created a request to infrastructure team to change the current automation to use these new repositories: https://forge.fedoraproject.org/infra/tickets/issues/13171
Member

Before the automation is changed to Fedora Forge repositories, i think we should 1) lock doc projects, 2) make sure forge repositories are updated by git-pulling changes from respective Pagure repository, 3) leave the projects locked (?)

Before the automation is changed to Fedora Forge repositories, i think we should 1) lock doc projects, 2) make sure forge repositories are updated by git-pulling changes from respective Pagure repository, 3) leave the projects locked (?)
Author
Owner

We could also make some repos cleaning - removing unused, renaming...

I will write (hopefully today) my idea into an separate issue so you can voice your opinion if yes or no, and if as a part of the migration or leave it rather after.

We could also make some repos cleaning - removing unused, renaming... I will write (hopefully today) my idea into an separate issue so you can voice your opinion if yes or no, and if as a part of the migration or leave it rather after.
Member

@jibecfed I'm working on updating translation-scripts README, and one step is to add a fedmsg hook. This is straightforward in Pagure, but how does this apply in Forgejo?

@jibecfed I'm working on updating translation-scripts README, and one step is to add a fedmsg hook. This is straightforward in Pagure, but how does this apply in Forgejo?
Owner

I don't see anything related to fedmesg hook on https://docs.fedoraproject.org/en-US/forge-documentation/
I suggest to open an issue to get the info https://forge.fedoraproject.org/forge/forge/ (and maybe help them by updating the doc)
Wild guess: this is by default and there is nothing to do.

I don't see anything related to fedmesg hook on https://docs.fedoraproject.org/en-US/forge-documentation/ I suggest to open an issue to get the info https://forge.fedoraproject.org/forge/forge/ (and maybe help them by updating the doc) Wild guess: this is by default and there is nothing to do.
Owner

@peartown wrote in #52 (comment):

We could also make some repos cleaning - removing unused, renaming...

I will write (hopefully today) my idea into an separate issue so you can voice your opinion if yes or no, and if as a part of the migration or leave it rather after.

I suggest you keep track of weird things in https://fedoraproject.org/wiki/L10N/Forgejo or in the first message of this ticket
We'll handle it after we are done with the technical migration

@peartown wrote in https://forge.fedoraproject.org/localization/tickets/issues/52#issuecomment-561760: > We could also make some repos cleaning - removing unused, renaming... > > I will write (hopefully today) my idea into an separate issue so you can voice your opinion if yes or no, and if as a part of the migration or leave it rather after. I suggest you keep track of weird things in https://fedoraproject.org/wiki/L10N/Forgejo or in the first message of this ticket We'll handle it after we are done with the technical migration
Author
Owner

Tomorrow the post in Community Blog will be published.

I intend to start locking the projects/components in Weblate on Wednesday and place a short notice for the translators with link to the post. After I lock a project I would like to work on its configuration changes (in Weblate and forge). And go project by project.

I would be grateful if you (Rafael?) could supervise my work/changes. ;)

Tomorrow the post in Community Blog will be published. I intend to start locking the projects/components in Weblate on Wednesday and place a short notice for the translators with link to the post. After I lock a project I would like to work on its configuration changes (in Weblate and forge). And go project by project. I would be grateful if you (Rafael?) could supervise my work/changes. ;)
Member

I would be grateful if you (Rafael?) could supervise my work/changes. ;)

Sure.

The steps are, basically:

  1. Browse the project (not a component)
  2. Go to Operations > Repository maintenance
  3. If there is at least one component locked already, make note to lock it again later. If an alert caused it to be locked, wouldn't be good to keep unlocked and the problem getting worse.
  4. Lock the project up

How about add an announce about this? It could be to the whole Fedora Weblate instance like "Fedora docs translation projects are locked due to on-going migration to Fedora Forge. See <link to blog post>"

> I would be grateful if you (Rafael?) could supervise my work/changes. ;) Sure. The steps are, basically: 1. Browse the project (not a component) 2. Go to Operations > Repository maintenance 3. If there is at least one component locked already, make note to lock it again later. If an alert caused it to be locked, wouldn't be good to keep unlocked and the problem getting worse. 4. Lock the project up How about add an announce about this? It could be to the whole Fedora Weblate instance like "Fedora docs translation projects are locked due to on-going migration to Fedora Forge. See \<link to blog post>"
Author
Owner

It could be to the whole Fedora Weblate instance like "Fedora docs translation projects are locked due to on-going migration to Fedora Forge. See "

Exactly, something like this I had in my mind. 👍

> It could be to the whole Fedora Weblate instance like "Fedora docs translation projects are locked due to on-going migration to Fedora Forge. See <link to blog post>" Exactly, something like this I had in my mind. 👍
Member

We might need to set push from mirror to Pagure, or remove mirror setting.

See error from https://translate.fedoraproject.org/projects/fedora-docs-l10n-project/nav/:

Could not push fedora-docs-l10n/project/nav: remote: mirror repository is read-only fatal: unable to access 'https://forge.fedoraproject.org/localization-docs/project.git/': The requested URL returned error: 403 (128)

See issue comment in https://github.com/go-gitea/gitea/issues/7609:

You cannot push to mirrored repositories. You will either need to fork the mirror and update the fork from the mirror intermittently manually, or, you need to push to the upstream.

If we allow pushes to mirrors and a conflicting change from upstream occurs what is supposed to happen?

I assume setting push would solve the read-only status.

We might need to set push from mirror to Pagure, or remove mirror setting. See error from https://translate.fedoraproject.org/projects/fedora-docs-l10n-project/nav/: > Could not push fedora-docs-l10n/project/nav: remote: mirror repository is read-only fatal: unable to access 'https://forge.fedoraproject.org/localization-docs/project.git/': The requested URL returned error: 403 (128) See issue comment in https://github.com/go-gitea/gitea/issues/7609: > You cannot push to mirrored repositories. You will either need to fork the mirror and update the fork from the mirror intermittently manually, or, you need to push to the upstream. > > If we allow pushes to mirrors and a conflicting change from upstream occurs what is supposed to happen? I assume setting push would solve the read-only status.
Author
Owner

Yes, it was expected. I have chosen between having to remove the mirror setting in the forge, or to pull from pagure to forge in the moment of migration. Purpose of the mirroring was to retain the history and a sync'd state.

I would not keep pagure in sync after, ie. mirroring from forge to pagure. Am I not seeing anything...? :)

Yes, it was expected. I have chosen between having to remove the mirror setting in the forge, or to pull from pagure to forge in the moment of migration. Purpose of the mirroring was to retain the history and a sync'd state. I would not keep pagure in sync after, ie. mirroring from forge to pagure. Am I not seeing anything...? :)
Author
Owner

All translation projects locked in Weblate, except fedora-docs-l10n/release-notes. I tried (twice) to push over 1300 outgoing commits, but it failed. So I am not sure what to do with the project/repositories.

localization-docs/project repository is transferred to a normal repository (mirroring setting removed) in the forge. I also added the gitea webhook for it. But we are probably not able to push changes from Weblate into it, unless jibec logs in to the forge as weblatebot, then weblatebot should be synced/added as a member to localization-docs.

All translation projects locked in Weblate, except fedora-docs-l10n/release-notes. I tried (twice) to push over 1300 outgoing commits, but it failed. So I am not sure what to do with the project/repositories. localization-docs/project repository is transferred to a normal repository (mirroring setting removed) in the forge. I also added the gitea webhook for it. But we are probably not able to push changes from Weblate into it, unless jibec logs in to the forge as weblatebot, then weblatebot should be synced/added as a member to localization-docs.
Member

weblatebot is not listed as a member in https://forge.fedoraproject.org/org/localization-docs/teams/members, which might explain why we're getting access denied:

Could not push fedora-docs-l10n/project/nav: remote: remote: Forgejo: User permission denied for writing. To https://forge.fedoraproject.org/localization-docs/project.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://forge.fedoraproject.org/localization-docs/project.git' (1)

weblatebot is not listed as a member in https://forge.fedoraproject.org/org/localization-docs/teams/members, which might explain why we're getting access denied: > Could not push fedora-docs-l10n/project/nav: remote: remote: Forgejo: User permission denied for writing. To https://forge.fedoraproject.org/localization-docs/project.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://forge.fedoraproject.org/localization-docs/project.git' (1)
Member

To confirm my previous message, I manually added weblatebot as member of https://forge.fedoraproject.org/localization-docs/project (Settings > Collaborators > Add collaborator weblatebot) and the translation push worked just fine. I removed it as this was a simple test.

To confirm my previous message, I manually added weblatebot as member of https://forge.fedoraproject.org/localization-docs/project (Settings > Collaborators > Add collaborator weblatebot) and the translation push worked just fine. I removed it as this was a simple test.
Author
Owner

for reference: forge/forge#448

for reference: forge/forge#448
Author
Owner

for reference:
Gitea credentials in Fedora Weblate - https://care.weblate.org/#ticket/zoom/12178
Issue for Forgejo hook, pull requests and documentation - https://github.com/WeblateOrg/weblate/issues/18453

for reference: Gitea credentials in Fedora Weblate - https://care.weblate.org/#ticket/zoom/12178 Issue for Forgejo hook, pull requests and documentation - https://github.com/WeblateOrg/weblate/issues/18453
Author
Owner

Just to announce that the gitea (forgejo) pull requests are now enabled in Fedora Weblate. (I have not tested the use yet.)

Another thing, as we are still not able to get the weblatebot user added into the localization-docs, see the comment above, we might, as a sort of a workaround, add it into the repositories manually and continue with the migration. Rafael and me tested that adding the weblatebot into the repository works. As a side note, I am also still not sure we, me and Jean-Baptiste, understood each other correctly what should and was done regarding the login of weblatebot into the forge.fedoraproject.org. @jibecfed, can you please confirm here that you did login as the weblatebot (fas) user into the forge.fedoraproject.org last week (I am really sorry for asking again)?

F44 release is approaching fast and there will likely not be Docs translation updates with the release.

Just to announce that the gitea (forgejo) pull requests are now enabled in Fedora Weblate. (I have not tested the use yet.) Another thing, as we are still not able to get the weblatebot user added into the localization-docs, see the [comment above](https://forge.fedoraproject.org/localization/tickets/issues/52#issuecomment-575357), we might, as a sort of a workaround, add it into the repositories manually and continue with the migration. Rafael and me tested that adding the weblatebot into the repository works. As a side note, I am also still not sure we, me and Jean-Baptiste, understood each other correctly what should and was done regarding the login of weblatebot into the forge.fedoraproject.org. @jibecfed, can you please confirm here that you did login as the [weblatebot (fas)](https://accounts.fedoraproject.org/user/weblatebot/) user into the forge.fedoraproject.org last week (I am really sorry for asking again)? F44 release is approaching fast and there will likely not be Docs translation updates with the release.
Author
Owner

Findings of March 30th Summary:

(Yesterday, me and rffontenelle tried to look further on the possible ways how to proceed with the migration.)

  • Nowadays, translation automation in the infra and Weblate (translate.fedoraproject.org) are pushing changes to pagure repositories.
  • Forge repositories are pull mirrors, pulling from the pagure's ones.
    • Mirroring keeps the forge and the pagure in sync.
    • But forge repositories are read-only only.
  • Translation projects in Weblate are locked for translations.
    • Translation automation commits revisions to .pot file(s) only - resulting from the changes in source docs repositories.

Finding I: Setting two-way mirrors, ie. where two repositories would mirror each other is not possible (because of read-only status of the forge repositories, no push from another remote(s) is possible).

If Weblate was set to push to the forge repositories:

  • forge repositories would need to be changed to standard repositories (demirrored).
  • Weblate would push to the forge, translation automation keeps pushing to pagure.

Finding II: Forge and pagure repositories likely would not longer stay in sync.

Finding III: Stop (and changes) in translation automation is desirable. (#52 (comment))

If translation automation was stoped:

  • Sysadmins will see some commit push failures.
  • We can start manual migration of projects in Weblate from pagure to forge.

A possible question of keeping changes (pushes from translation automation) just in Weblate, ie. to unset pushing configuration(s) in Weblate in the translation projects, in the meantime the translation automation is not changed can be further explored.

Finding IV: Further steps can be taken without significant (negative) effect:

  • Add weblatebot manually as a collaborator into forge repositories. (#52 (comment))
  • Set gitea webhooks in the forge repositories.
  • Subscribe to ticket of migrating automation from Pagure to Forge
Findings of March 30th Summary: (Yesterday, me and rffontenelle tried to look further on the possible ways how to proceed with the migration.) - Nowadays, translation automation in the infra and Weblate (translate.fedoraproject.org) are pushing changes to pagure repositories. - Forge repositories are pull mirrors, pulling from the pagure's ones. - Mirroring keeps the forge and the pagure in sync. - But forge repositories are read-only only. - Translation projects in Weblate are locked for translations. - Translation automation commits revisions to .pot file(s) only - resulting from the changes in source docs repositories. Finding I: Setting two-way mirrors, ie. where two repositories would mirror each other is not possible (because of read-only status of the forge repositories, no push from another remote(s) is possible). If Weblate was set to push to the forge repositories: - forge repositories would need to be changed to standard repositories (demirrored). - Weblate would push to the forge, translation automation keeps pushing to pagure. Finding II: Forge and pagure repositories likely would not longer stay in sync. Finding III: Stop (and changes) in translation automation is desirable. (https://forge.fedoraproject.org/localization/tickets/issues/52#issuecomment-561740) If translation automation was stoped: - Sysadmins will see some commit push failures. - We can start manual migration of projects in Weblate from pagure to forge. A possible question of keeping changes (pushes from translation automation) just in Weblate, ie. to unset pushing configuration(s) in Weblate in the translation projects, in the meantime the translation automation is not changed can be further explored. Finding IV: Further steps can be taken without significant (negative) effect: - Add weblatebot manually as a collaborator into forge repositories. (https://forge.fedoraproject.org/localization/tickets/issues/52#issuecomment-575357) - Set gitea webhooks in the forge repositories. - Subscribe to ticket of migrating automation from Pagure to Forge
Member

Added https://translate.fedoraproject.org/hooks/gitea/ webhook to all repositories under localization-docs.

Added `https://translate.fedoraproject.org/hooks/gitea/` webhook to all repositories under [localization-docs](https://forge.fedoraproject.org/localization-docs?sort=alphabetically).
Author
Owner

Added a request for stopping the translation automation in infra/tickets#13171. But there is the infra freeze unfortunately.

Added a request for stopping the translation automation in infra/tickets#13171. But there is the infra freeze unfortunately.
Member

Now that translations scripts automation is stopped, I migrated the localization-docs/websites to Forge (i.e. all settings in Weblate and in Forge). See steps below.

For each project you're going to migrate, do the following:

l10n repository in forge.repository.org

  • In the repository Settings:
    • Repository > Roll down to the bottom of the page for "Convert to regular repository", and confirm;
    • Collaborators > Search for "weblatebot" and press "Add Collaborator";
    • Webhooks > Make sure https://translate.fedoraproject.org/hooks/gitea/ is set

translate.fedoraproject.org

  • Search for the translation project (hint: components must match .adoc files in the Forge repo)
  • In the translation project's settings:
    • set "Project website" with the HTTPS URL of the Forge repo;
    • make sure "Enable hooks" checkbox is enabled
  • In (component) nav's settings:
    • set "Source code repository" with the HTTPS URL of the Forge repo;
    • set "Repository Push URL" with (replacing <TOKEN> and REPO_NAME accordingly)
      https://weblatebot:<TOKEN>@forge.fedoraproject.org/localization-docs/<REPO_NAME>.git
  • Back to the translation project page > Operations > Repository maintenance > Unlock
  • (preferably) Test translation contributing, commit and push (Operations > Repository Maintenance)
Now that translations scripts automation is stopped, I migrated the [localization-docs/websites](https://forge.fedoraproject.org/localization-docs/websites) to Forge (i.e. all settings in Weblate and in Forge). See steps below. For each project you're going to migrate, do the following: **l10n repository in forge.repository.org** - In the repository Settings: - Repository > Roll down to the bottom of the page for "Convert to regular repository", and confirm; - Collaborators > Search for "weblatebot" and press "Add Collaborator"; - Webhooks > Make sure https://translate.fedoraproject.org/hooks/gitea/ is set **translate.fedoraproject.org** - Search for the translation project (hint: components must match .adoc files in the Forge repo) - In the translation project's settings: - set "Project website" with the HTTPS URL of the Forge repo; - make sure "Enable hooks" checkbox is enabled - In (component) nav's settings: - set "Source code repository" with the HTTPS URL of the Forge repo; - set "Repository Push URL" with (replacing `<TOKEN>` and `REPO_NAME` accordingly) `https://weblatebot:<TOKEN>@forge.fedoraproject.org/localization-docs/<REPO_NAME>.git` - Back to the translation project page > Operations > Repository maintenance > Unlock - (preferably) Test translation contributing, commit and push (Operations > Repository Maintenance)
Member
Done migrating the following projects (expand for its URLs): <details> <summary>localization-docs/websites</summary> weblate: https://translate.fedoraproject.org/projects/fedora-docs-l10n-websites/<br> forge l10n: https://forge.fedoraproject.org/localization-docs/websites<br> docs.fp.o: https://docs.fedoraproject.org/en-US/websites/<br> upstream: https://gitlab.com/fedora/websites-apps/documentation/-/blob/main/modules/ROOT<br> </details> <details> <summary>localization-docs/teleirc-sig</summary> weblate: https://translate.fedoraproject.org/projects/fedora-docs-l10n-teleirc-sig/<br> forge l10n: https://forge.fedoraproject.org/localization-docs/teleirc-sig<br> docs.fp.o: https://docs.fedoraproject.org/en-US/teleirc-sig/<br> upstream: https://pagure.io/sig-teleirc/infrastructure<br> </details> <details> <summary>localization-docs/remix-building</summary> weblate: https://translate.fedoraproject.org/projects/fedora-docs-l10n-remix-building/<br> forge l10n: https://forge.fedoraproject.org/localization-docs/remix-building<br> docs.fp.o: https://docs.fedoraproject.org/en-US/remix-building/<br> upstream: https://pagure.io/fedora-docs/remix-building<br> </details>
Author
Owner

I have just moved the table of projects/repos from OP to a wiki page. To enable edition by other people than me.

I have just moved the table of projects/repos from OP to a wiki page. To enable edition by other people than me.
Member

All Weblate translation projects migrated to Forge and unlocked, with a few exceptions listed below.

Pending answer, unsure how to proceed:

Should we create Weblate translation projects for the following repositories? These localization repository were migrated to Forge, but there are (and probably there never were) no Weblate translation projects for them:

I recommend removing the Weblate translation projects below because they are not published in docs.fp.o, which means they won't be built nor updated by the l10n infrastructure, so it would be a lose of translation effort:

Should we remove these localization repositories from https://forge.fedoraproject.org/localization-docs/ ?:

  • localization-docs/fedora-docs-contributing - I recommended removing fedora-docs-contributing Weblate translation project above.
  • localization-docs/fedora-kinoite - I recommended removing fedora-kinoite Weblate translation project above.
  • localization-docs/fedora-silverblue - I recommended removing fedora-silverblue Weblate translation project above.
  • localization-docs/fedora-docs-contributing - I recommended removing fedora-docs-contributing Weblate translation project above.

NOTE: unmigrated dead project:

All Weblate translation projects migrated to Forge and unlocked, with a few exceptions listed below. **Pending answer, unsure how to proceed**: - [community] - That's published at https://docs.fedoraproject.org/en-US/community/. Its repositories are [council/community-architecture in GitLab] and [commops/community-docs in Forge], and the former has a note, and repo renamed, saying they already migrated to Forge. Considering that repository name must match the repository in order for the localization infrastructure to work, I need to know which name I use: community-architecture or community-docs, because [docs-fp-o site.yml] still points to GitLab repository. I posted a message in #commops:fedoraproject.org about this and I'm still waiting for an answer. **Should we create Weblate translation projects for the following repositories?** These localization repository were migrated to Forge, but there are (and probably there never were) no Weblate translation projects for them: - [localization-docs/docs-l10n] - l10n repository for [docs/localization-stats]. - [localization-docs/localization] - l10n repository for [localization/docs]. **I recommend removing the Weblate translation projects below** because they are [not published in docs.fp.o], which means they won't be built nor updated by the l10n infrastructure, so it would be a lose of translation effort: - [ask-fedora-sops] - See retirement announce https://discussion.fedoraproject.org/t/ask-fedora-sops-in-docs-to-be-retired-and-replaced-replacements-to-be-either-in-docs-or-discourse/181803 - [fedora-docs-contributing] - As per #61, this seems to be migrated to 'fedora-docs', is outdated, has no upstream repository - [fedora-kinoite] - Descontinued in favor of Fedora Atomic Desktops documentation (see more about it below) - [fedora-silverblue] - same as kinoite - [taiga-docs-taiga] - upstream project is dead for 6 years now **Should we remove these localization repositories from https://forge.fedoraproject.org/localization-docs/ ?**: - localization-docs/fedora-docs-contributing - I recommended removing [fedora-docs-contributing] Weblate translation project above. - localization-docs/fedora-kinoite - I recommended removing [fedora-kinoite] Weblate translation project above. - localization-docs/fedora-silverblue - I recommended removing [fedora-silverblue] Weblate translation project above. - localization-docs/fedora-docs-contributing - I recommended removing [fedora-docs-contributing] Weblate translation project above. **NOTE: unmigrated dead project**: - https://pagure.io/fedora-docs-l10n/project-dashboard - has no upstream repository, has no translation project in Weblate, so it wasn't migrated. It will be lost once Pagure is decommissioned [docs/localization-stats]: https://forge.fedoraproject.org/docs/localization-stats [localization/docs]: https://forge.fedoraproject.org/localization/docs [localization-docs/docs-l10n]: https://forge.fedoraproject.org/localization-docs/docs-l10n [localization-docs/localization]: https://forge.fedoraproject.org/localization-docs/localization [not published in docs.fp.o]: https://forge.fedoraproject.org/docs/docs-fp-o/src/branch/prod/site.yml [ask-fedora-sops]: https://translate.fedoraproject.org/projects/fedora-docs-l10n-ask-fedora-sops/ [taiga-docs-taiga]: https://translate.fedoraproject.org/projects/fedora-docs-l10n-taiga-docs-taiga/ [fedora-docs-contributing]: https://translate.fedoraproject.org/projects/fedora-docs-l10n-fedora-docs-contributing/ [fedora-kinoite]: https://translate.fedoraproject.org/projects/fedora-docs-l10n-fedora-kinoite/ [fedora-silverblue]: https://translate.fedoraproject.org/projects/fedora-docs-l10n-fedora-silverblue/ [community]: https://translate.fedoraproject.org/projects/fedora-docs-l10n-community/ [council/community-architecture in GitLab]: https://gitlab.com/fedora/council/community-architecture.git [commops/community-docs in Forge]: https://forge.fedoraproject.org/commops/community-docs [docs-fp-o site.yml]: https://forge.fedoraproject.org/docs/docs-fp-o/src/branch/prod/site.yml#L170
Member

@peartown can you have automation turned on?

@peartown can you have automation turned on?
Author
Owner

This is my summary of darknao's discussion posts regarding of modifications needed to the translation scripts in order the translation automation works in prod:

  • script needs write access to everything under forge.fedoraproject.org/localization-docs/* and forge.fedoraproject.org/docs/translated-sources

  • support in that script to use a proper git token in the pushurl, (a way to pass that to the script: args, environment variables, config file) preferably through environment variables so we can easily configure that credential in the infra side

  • we need a forge user with write access to all the required repositories, and create an access token with appropriate privileges that we can pass to the script

We also discussed that the forge user could very probably be weblatebot.

I am afraid I am not really helpful here with my scripting skills. Can you prepare the changes in the script?

This is my summary of darknao's discussion posts regarding of modifications needed to the translation scripts in order the translation automation works in prod: - script needs write access to everything under forge.fedoraproject.org/localization-docs/* and forge.fedoraproject.org/docs/translated-sources - support in that script to use a proper git token in the pushurl, (a way to pass that to the script: args, environment variables, config file) preferably through environment variables so we can easily configure that credential in the infra side - we need a forge user with write access to all the required repositories, and create an access token with appropriate privileges that we can pass to the script We also discussed that the forge user could very probably be weblatebot. I am afraid I am not really helpful here with my scripting skills. Can you prepare the changes in the script?
Owner

for now, automation is blocked by forge/forge#27
I don't know how to resolve this without ssh auth

for now, automation is blocked by https://forge.fedoraproject.org/forge/forge/issues/27 I don't know how to resolve this without ssh auth
Member

All localization-docs repositories set with Forgejo webhook URL. I used the attached Bash script, for the record.

All localization-docs repositories set with Forgejo webhook URL. I used the attached Bash script, for the record.
Author
Owner

FYI, Forgejo webhooks to Fedora Weblate do not work [Ticket#2013652] https://care.weblate.org/#ticket/zoom/12432https://care.weblate.org/#ticket/zoom/12432

FYI, Forgejo webhooks to Fedora Weblate do not work [Ticket#2013652] https://care.weblate.org/#ticket/zoom/12432https://care.weblate.org/#ticket/zoom/12432
Member

Since weblatebot is now a member of the localization-docs organization (thanks @peartown for letting us know), I removed weblatebot as collaborator from all of its repositories.

Since weblatebot is now a member of the localization-docs organization (thanks @peartown for letting us know), I removed weblatebot as collaborator from all of its repositories.
Member

Testing docs/translations-scripts#54, I manually updated PO and POT files of all localization-docs repositories.

I didn't update docs/localization-stats and docs/translated-sources because I don't have access.

Testing https://forge.fedoraproject.org/docs/translations-scripts/pulls/54, I manually updated PO and POT files of all localization-docs repositories. I didn't update docs/localization-stats and docs/translated-sources because I don't have access.

You can remove those as we migrated to a unified doc repo: https://forge.fedoraproject.org/atomic-desktops/docs

> * [fedora-kinoite](https://translate.fedoraproject.org/projects/fedora-docs-l10n-fedora-kinoite/) - Descontinued in favor of Fedora Atomic Desktops documentation (see more about it below) > * [fedora-silverblue](https://translate.fedoraproject.org/projects/fedora-docs-l10n-fedora-silverblue/) - same as kinoite You can remove those as we migrated to a unified doc repo: https://forge.fedoraproject.org/atomic-desktops/docs
Author
Owner

I think time has come to close this ticket. What do you think?

All the repositories are migrated.
Updated translation scripts are in place and working.
Probably some 'cleaning' tasks, regarding weblate or pagure, still remain, but...

I think time has come to close this ticket. What do you think? All the repositories are migrated. Updated translation scripts are in place and working. Probably some 'cleaning' tasks, regarding weblate or pagure, still remain, but...
Member

The only thing left is the handle Pagure fedora-docs-l10n repositories. I requested deletion (as suggested by Jean-Baptiste in #l10n Matrix room): infra/tickets#13428

@siosm: translation projects removed in favor of https://translate.fedoraproject.org/projects/fedora-docs-l10n-atomic-desktops/, thanks

The only thing left is the handle Pagure fedora-docs-l10n repositories. I requested deletion (as suggested by Jean-Baptiste in #l10n Matrix room): https://forge.fedoraproject.org/infra/tickets/issues/13428 @siosm: translation projects removed in favor of https://translate.fedoraproject.org/projects/fedora-docs-l10n-atomic-desktops/, thanks
Author
Owner

I have drafted a short announcement about the translations availability for the Community Blog.

Pasting here for possible suggestions/improvements/comments (as I am not sure how much accessible the draft commblog post is):

Fedora Documentation translations again available
Updates to translations of Fedora Documentation are again available.
As announced on March 3rd, the unavailability of translation updates was due to the migration of the
translation repositories and necessary tools from Pagure to the Fedora Forge.
It took longer than expected but we are pleased to report this undertaking came finally to the end.

Used links:
Fedora Documentation -> docs.fedoraproject.org
announced -> previous commblog of March 3
undertaking -> this issue

I have [drafted a short announcement](https://communityblog.fedoraproject.org/?p=15820&preview=1&_ppp=d6eba1f951) about the translations availability for the Community Blog. Pasting here for possible suggestions/improvements/comments (as I am not sure how much accessible the draft commblog post is): **Fedora Documentation translations again available** Updates to translations of Fedora Documentation are again available. As announced on March 3rd, the unavailability of translation updates was due to the migration of the translation repositories and necessary tools from Pagure to the Fedora Forge. It took longer than expected but we are pleased to report this undertaking came finally to the end. Used links: Fedora Documentation -> docs.fedoraproject.org announced -> previous commblog of March 3 undertaking -> this issue
Owner

Cool, yes I can access the draft

my suggestion:

  • the work done is huge, I suggest use numbers to show it, number of projects, number of components, number of words to translate, you should show off, there not that many community making this real
  • we are happy and proud! We spent dozens/hundreds of hours of our life to make that happen, I suggest all of the message to be only containing positive
  • who are we writing too? mostly for our translators and to inform users
  • what do they want to know? likely that it works, where to go contribute, and basics about how this works
  • the forge migration was a pretext to give some attention to this huge mecanic, it were created by Adam Šamalík and Jean-Baptiste Holcroft, but was also lacking maintenance actions.
  • who did the work? There is now three Fedora Localization Administrators, peartown/rafael/jibecfed (full names?), maintaining this infrastructure. I assume Darknao should be quoted too?
  • how does this work? A few words on the fact the po4a.org tool is used to convert all source content into gettext translations files. The translations are handled via Weblate. The po4a.org tool is used to generated translated content back.
  • what were the required action: change the repositories for x projects, create x missing projects, tune...
  • where to find us? l10n on matrix and trans mailing list?

My suggest would be to start all our communications with something like "Dear translators and allies"

I can suggest text for whatever part you ask for, but your writing is fine
It is great that you are working on fully finish this task by this public communication

Cool, yes I can access the draft my suggestion: - the work done is huge, I suggest use numbers to show it, number of projects, number of components, number of words to translate, you should show off, there not that many community making this real - we are happy and proud! We spent dozens/hundreds of hours of our life to make that happen, I suggest all of the message to be only containing positive - who are we writing too? mostly for our translators and to inform users - what do they want to know? likely that it works, where to go contribute, and basics about how this works - the forge migration was a pretext to give some attention to this huge mecanic, it were created by Adam Šamalík and Jean-Baptiste Holcroft, but was also lacking maintenance actions. - who did the work? There is now three Fedora Localization Administrators, peartown/rafael/jibecfed (full names?), maintaining this infrastructure. I assume Darknao should be quoted too? - how does this work? A few words on the fact the po4a.org tool is used to convert all source content into gettext translations files. The translations are handled via Weblate. The po4a.org tool is used to generated translated content back. - what were the required action: change the repositories for x projects, create x missing projects, tune... - where to find us? l10n on matrix and trans mailing list? My suggest would be to start all our communications with something like "Dear translators and allies" I can suggest text for whatever part you ask for, but your writing is fine It is great that you are working on fully finish this task by this public communication
Author
Owner

I am afraid things again happened much faster then I expected. The post has been already published on commblog (without me knowing). I was expecting Tuesday or so.

But definitely I would welcome any help with real statistics to paint the effort we have spent on it. I was just afraid that with my pace of work these days it could take me perhaps weeks to prepare the statistics myself and include it in the post.

If you agree we could prepare another post where we can provide a such information (and retrospective?)?

I am afraid things again happened much faster then I expected. The post has been already published on commblog (without me knowing). I was expecting Tuesday or so. But definitely I would welcome any help with real statistics to paint the effort we have spent on it. I was just afraid that with my pace of work these days it could take me perhaps weeks to prepare the statistics myself and include it in the post. If you agree we could prepare another post where we can provide a such information (and retrospective?)?
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
localization/tickets#52
No description provided.