Migration to Heptapod

The new project on Heptapod is now fully operational.
There are still few minor things that will be fixed in the follow weeks (ex: migrate the secondary bug trackers).

5 Likes

That’s great!

I see that the tryton repository has the modules at the root. Is there a plan to move it into trytond/trytond/modules? It seems it would make development somewhat easier?

Otherwise how do you suggest to handle the development of new features?

No it is good to be able to choose “installed” modules in development mode. But also it will be harder to know when to make a release.

As usual.

JFTR if anyone searches for the mercurial dev setup like me:

How to Develop advises to use mercurial topics for development. The setup of the extension was not so straightforward since it is not part of mercurial core. I had to do at least:

$ pip install --user hg-evolve

and different from Changeset Evolution with Mercurial — evolve extension for Mercurial I had to insert the explicit path to the extension(s)

evolve = /home/username/.local/lib/python3.10/site-packages/hgext3rd/evolve/
topic = /home/username/.local/lib/python3.10/site-packages/hgext3rd/topic

It’s strange we have probably almost the same setup as I’m also a debian user (I use sid) yet I wasn’t required to use the full path of the module when installing with pip install --user.

Mercurial extensions must be installed with the same Python version that hg command is using.

I don’t found how to add in an issue:

  • add modules at the issue (labels?)
  • add you in noisy list (participants?)

Somebody could you explain? thanks

We use labels to categorize per module familly

There is a “Notifications” check box.

Any updates on the progress of the github mirror?

It is completed synchronized. I also put relatorio, python-sql and goocalendar.

I tried to disable the billing for the app engine but this prevents to use it because the free storage quota is 1GB and we have 6.2GB. So I restored the billing for now.
Instead I would urge everyone who has still pending reviews (and not yet converted into merge request) to take action as soon as possible.
The plan is now to make the data store readonly by the end of the month, make a copy of the data and then disable the billing. This way in case of need we could still re-enable the billing exceptionally to retrieve some missing information.

Maybe we can just store download all the open patches in a folder so anyone can pick them in the future and convert into heptapod. As this is plan text we may store it on one of our servers, so everything can be restored latter if needed.

I think that people who will not migrate their review during the month, does not care about it any more. So I do not think we should work harder and spend more resource than the actual plan for people who does not care.

2 Likes

Could you add me as a Developer? Thanks!

You must make the request on Heptapod like explained on Tryton - How to Develop

Following the deactivation of the Mailgun account, it was no more possible to post message. Now the emails have been deactivated so it is working again. So please post and close reviews when you convert into a merge request.

1 Like

Here are some tips to setup mercurial to smooth the usage with Heptapod:
https://octobus.net/blog/2020-11-26-modern-mercurial.html

4 Likes

If you are like me annoyed to not see which merge request have threads solved, I wrote a script based on GitHub - Krystofee/gitlab-unresolved-threads: Chrome extension to show unresolved threads on merge request list. that can be loaded with Greasemonkey: https://www.b2ck.com/~ced/heptapod-mr.user.js

Here is the result

I’m sharing a simple script we developed to download the patch files from the old codereview server:


import requests
import os
import argparse
from bs4 import BeautifulSoup

parser = argparse.ArgumentParser()
parser.add_argument("-u", dest='user', type=str, required=True)
parser.add_argument("-p", dest='path', type=str, required=True)
args = parser.parse_args()
user = args.user
savepath = args.path

try: 
    os.mkdir(savepath) 
except OSError as error: 
    print("This path already exist, the files inside will probably be replaced")  

URL = "https://codereview.tryton.org/user/" + user
page = requests.get(URL)
soup = BeautifulSoup(page.content, "html.parser")

primer_tr = soup.find("tr", class_="header outgoing")
second_tr = soup.find("tr", class_="header unsent")

keep = False
for search in soup.find_all("tr"):
    if search == primer_tr or keep == True:
        rows = search.find("div", class_="subject")
        keep = True

        if rows:
            SECOND_URL = "https://codereview.tryton.org" + "/" + rows.find("a", href=True).getText() + "/"

            page2 = requests.get(SECOND_URL)
            soup2 = BeautifulSoup(page2.content, "html.parser")
            download = soup2.find("a", string="[raw]")
            download = "https://codereview.tryton.org" + download["href"]

            save = requests.get(download)
            soup3 = BeautifulSoup(save.content, "html.parser")
            filename = download.split("issue")
            write = open(savepath + "/" + filename[1], "w")
            write.write(soup3.text)
            write.close()

    if search == second_tr:
        break

This allows anyone to download the patches to its local computer to upload them latter to heptapod.

Hope it helps!

5 Likes

With Mercurial 6.4, you can add in .hg/hgrc:

[merge-patterns]
**/CHANGELOG = internal:union-other-first

This will resolve automatically and correctly the common rebase conflict on CHANGELOG file.

2 Likes