-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Repo Automation: Diff Bot for Translation Updates #8
Comments
I think the description in the linked issue is already rather detailed. Personally, I think we should create a new pull request once a day and not only once per release. This way, the translation could be ready for the release already. There is more information on the bot here: https://reactjs.org/blog/2019/02/23/is-react-translated-yet.html#the-bot In order to keep track what has been merged and what still needs to be done, I think it is important that the translation repositories are forked off the main solidity repository. If you create such a bot, you can assume that this is the case (even if it might not be currently). It might be good to run this as a github action. |
|
I think the bot should run in the translation repository, especially when it only runs once a day and thus does not need a "PR merged" trigger. |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done This issue now has a funding of 0.26 ETH (859.03 USD @ $3303.96/ETH) attached to it as part of the Solidity fund.
|
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Workers have applied to start work. These users each claimed they can complete the work by 264 years, 4 months from now. 1) willianpaixao has applied to start work (Funders only: approve worker | reject worker).
I did similar tasks in the past.
I would love to work in this problem. My plan:
I'll continuously update the team on my progress, and will be available to talk if wanted. I am interested to work on this PR, I will work in the following manner:
Learn more on the Gitcoin Issue Details page. |
Hi, Modifications needed to be done in the Now comes my suggestion, rather than creating a PR, I'd prefer to upload to Crowdin, like the other Ethereum projects do. There you already have hundreds of translators already working on Ethereum projects. All we need is someone to create and add an API Token to the newly created workflow. That means, all work could (and in my humble opinion should) be done in the original solidity repo. So this organization and repositories would be deprecated. What do you think? |
Hi @willianpaixao, Context on why we decided to create the translation process how it is set up right now can be found in this issue. There we clearly elaborated why we don't want to use a translation tool etc. There are also obvious reasons for why the community translations are hosted in a different Github org/repo that the core solidity repo. Please be aware that the setup chosen has been carefully evaluated and does not require changing at this point. I think the task is outlined quite clearly above. Let me know if you have specific questions considering the task. |
Thanks or the feedback @franzihei, really appreciated it. Ok, IMHO this bot+PR approach is not effective and very hard to maintain, the overhead of branching, creating a PR and pushing adds a layer of obstacle from people that would "just want to translate". I'm myself a Debian doc translator since 2006 and the easiest path brings the most volume of contributions. Please this is my personal opinion and experience and I know that the decisions made on ethereum/solidity/issues/10119 were carefully made and with the best intentions. That said, I'm more than happy to implement the whole translation feature in Sphinx + Crowdin. No bounty needed. I understand if you decline my offer so let me know your most honest opinion. |
Hi again @franzihei, I apologize for being so annoying. 😅 I got really intrigued by all this and took another round of POC. Here are my findings:
I didn't go a step further and tried to publish in Read The Docs, but I trust that my previous POC, in the above screenshot would be enough proof that the site generation picks up the translations once the PR is merged and the pipeline builds and publishes new version with the latest translations. Note also that only two languages were listed and if a number is considered higher, some improvements should be done. I still wait for your thoughts. |
Hi @willianpaixao, Thank you for this. As I mentioned before there are reasons why we decided against tools like Crowdin and the usage of Please respect our decision and thank you for your thoughts nonetheless. |
Thank you for your feedback! |
@franzihei is the bounty on this still active? if yes I would like to work on it |
Work on this bounty has been started and a contributor has been chosen. Thank you all for your applications! |
Hello everyone Possible solutions are:
Let me know what do you think about that. |
I'm not sure which workflow is a better choice here but just wanted to note that if we want to switch to translation repos being full forks of the main repo, the sooner, the better. Converting translation repos to that will be very tedious once we have tons of them. Also, this will probably require squashing their whole history to be doable with reasonable effort. |
Just so that I understood this correctly,
Is there anything I can do from my side? I will also adjust it accordingly in the translation guide. |
Since there were no translations in |
@o-lenczyk how do you mean "prepare repositories for translations as exact forks of main repository, including all the files and commits."? I think it would be best if only the I can't comment on which of the solutions is better from a technical PoV. |
@franzihei
|
Just to clarify more: I assume this means that after creating hu.reactjs.org that repo contains all commits from reactjs.org and it's just that translators only add new commits with translated text on top of that. Then a PR from the bot also includes all the commits added in the reactjs.org since last time. Both the ones that touched the docs and the ones that only changed code.
What I meant was converting these repos into full forks (i.e. with full commit history of the main repo). It would require replacing each one with a fresh clone of the solidity repo and then using git to cherry pick the commits that add translations from existing repos and put them on top. It would be mostly command-line work and using the editor to solve any resulting conflicts. |
We should test how it works, but I would prefer doing it as reactjs does - full fork of full history. What are the downsides? |
I would say that only downside is size of repository - 60MB instead of 1,2MB.
I was researching the topic of forking single directory. One of the option is |
I'm fine with any way that works: Either a way that does not create conflicts in files we are not interested in, or a script that auto-resolves these conflicts. |
@chriseth
I will try some other options like Anway, merging changes from upstream to translation repositories with all the directories is straightforward. |
I think you can't avoid conflicts in the full fork approach. I doubt |
@cameel
and it is also working.
|
Looks good to me. If you want some feedback on the implementation, you could create a draft PR from your repo. Then we could comment on specific parts of code. One thing I'd recommend already would be to include the date in the PR title and branch name. Commit hashes are useful too but less informative at a glance unless you go through the trouble of looking them up. PRs already have timestamps but in some contexts (e.g. e-mail notifications) you only see the title. |
Thanks @o-lenczyk! |
Sure, I was going to review it today. |
The bot PR is looking good and I think we should try it out in the German repo. There are some decisions to make (see below) but I think it would be best to merge the bot in the current form (as soon as the small issues are ironed out) and then refine the design in subsequent PRs. Design/workflow decisions
|
Yay that sounds great! My opinion on the open questions:
@chriseth can you also share your opinion on the 3 open questions? |
It actually matters more for the person who will be creating new repos (is it you or @chriseth?). In either variant translators just get a repo where then can immediately start translating, and it's not their problem how that repo got there :)
Not on its own but it would be fairly easy to set up github actions to pull new code into it nightly. And it's much simpler than with pulling changes into translation repos because we don't have to worry about conflicts, creating a PR, etc.; we just pull in new commits and call it done. At least as long as we can assume that it's just a template and no one is actually translating in that repo, i.e. it's basically a copy of main repo's |
Currently I am creating new repos. But so far I just created them "empty", added the maintainers and they took it from there. I'm fine to do a different work-flow though, as long as I know what I need to do. :) |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done The funding of 0.26 ETH (274.71 USD @ $1056.57/ETH) attached to this issue has been cancelled by the bounty submitter
|
Problem
The Solidity documentation is being translated through community efforts in the solidity-docs organisation. It is hard and overly complicated for the community translators to keep track and catch up with versions and manually update a translation as new Solidity versions get released.
Solution
Automation! Optimally, we would like to have a bot similar to the reactjs-translation-bot, which would create PRs with new content that needs to be translated every time the original documentation is updated.
Task
To semi-automate the process, it would be great if we could set up a bot, similar to the reactjs.org translation bot. The bot creates PRs for new content to be translated from the original English version of the docs. More info on the bot can be found here and this is how a PR from the bot looks like. More context on the process behind the reactjs bot can be found in this issue.
More Details on the Bot Design and Functions
develop
branch shall be used as a source.Relevant Links
The text was updated successfully, but these errors were encountered: