Tryton ERP: history and prospects N. Evrard & C. Krier – B2CK

The history of Tryton ERP

Walid: welcome to this new episode of Projets Libres! Today, it’s a bit of a special episode. The two guests I have today, it’s not the first time I’ve interviewed them. It just so happened that the first time I was in an interview… it was 15 years ago, on a radio station called Radio Panic, with Frédéric Péters, Fabrice Flore-Thébault and Pierre Cros. We had a show called Good Morning Stallman, which we were on. And one day, on January 14, 2009, we received our guests, Nicolas Evrard and Cédric Krier, to present what was at the time, I think, one of the first interviews with Tryton, an open source ERP that we are going to talk about today. So there you have it, 15 years later, normally, if you listen to this episode, it should be released on January 14, 2024, that is to say exactly 15 years after the first interview. A little humorous touch. And this idea for an interview came to me because I’ve been wanting to talk about forks for a long time and do a series on what forks are. I thought about this interview again and so I contacted Nicolas and Cédric again. They kindly accepted my invitation. So I hope you’re both doing well.

Nicolas: yes, yes, we’re fine. I’m a little afraid that we’re repeating what we said 15 years ago, but that’s it.

Presentation by Nicolas Evrard and Cédric Kreier

Walid: It’s been 15 years, it’s fine. I think we won’t say the same thing in my opinion. So for listeners, I’ll put in the podcast notes the link to the Good Morning Stalman show from 2009. For those who are motivated, they will be able to go and listen. The first part is that I’m going to ask you both to introduce yourselves, to explain to us a little bit about your background. How did you find out about free software?

Nicolas: Well, I’m going to go, I’m older. So, Nicolas Evrard, I’m a Tryton developer. How did I find out about free software? It was at university, in the 90s, so it’s been a while now. We worked on Unix and at home, to do practical work, the easiest thing was to have a Linux. And so I installed a Red Hat, which if I remember correctly was 5.2. And then that’s it, then finally I put a Debian and I found myself working on Zope, a web development framework in Python. Then one thing led to another, I found myself doing OpenERP, TinyERP even at the time it was called, which became OpenERP. And then I left, it became Odoo. And I met Cédric shortly before leaving, since for the record I was interviewing people who arrived at Odoo and I interviewed Cédric. And I liked him because he read his emails through Mutt. Which is completely stupid, but hey, there you go. It was a way of sorting people anyway.

Cédric: yes, so, Cédric, I have an engineering background. I started to know about free software, I think, during my studies as well. I had to install a Mandrake at the time (Editor’s note: to find out more, see the interview with Gaël Duval), which I had in a magazine, it was CDs. I left it out a bit. I started my professional career as a developer in a company that made software for banks, in Cobol. I stayed there for a few years, and then I switched, and I worked in a company that was in security, that made network appliances. And after that, I was hired at Tiny, to work on TinyERP. And then, a few years later… we started Tryton and now we both work at B2CK, a company we created to support the software.

Walid: I remember Red Hat 5.1 or 5.2 very well, you must be about the same age. Are you based in Belgium, where are you based?

Cédric: We’re in Liège.

Nicolas: both from Liège.

Walid: So now that you’re introduced, let’s start by introducing Tryton. Most of the people who are there, I’m not sure they know Tryton. So first of all, it’s an ERP, an Enterprise Resource Planning software. It is a software whose purpose is to manage all the processes of a company. Can you introduce us to Tryton?

Cédric: Yes, in fact, we tend to say that it’s more of a software package than an ERP. It’s a little broader than the features of an ERP. It’s really a little bit beyond.

So, Tryton is a free software, which we developed, which initially came from a fork of TinyERP. We’ll talk about that a little later. Its characteristics are that it is written in Python, that it is based on a Postgres database, that it is on a three-tier architecture. So we have a client, a thin client, a server which is the application server, so there is business knowledge, business processes, etc. And then the database for storage.

Cédric Krier

We have two customers, in fact, two thin customers. A client in the browser, written in JavaScript. and a client or desktop written with GTK, compiled as a native application. After that, the basic features we have are the big features that we expect from an ERP: purchasing, sales, stock management, accounting, invoicing, production…

Nicolas: online sales more or less, well there is a way to build. That’s also what’s in Tryton’s philosophy, is that we provide the bricks to go further. Not everything is integrated. I imagine that people know Odoo better. And Odoo comes with its e-commerce in it, and with Tryton, it’s rather built on the side. We have also built a few.

Cédric: One of the ideas for the architecture of the software is to be modular, to be able to activate the modules you need, and to create modules if you want more. And in addition to being interoperable, so we can use it, to be easy to connect to other applications, to other solutions. And so for e-commerce, among other things, we have a module to connect to Shopify, a module for Vuestorefront. And we have already developed small connectors for other e-commerce several times. We also have connection solutions with online payment solutions. We manage automatically: we have Stripe and Braintree, a subsidiary of PayPal. Really, the idea is interoperability.

Nicolas: I would add that the project, this vision of interoperability has allowed other projects to be built in parallel with Tryton. Among others, there is a free software called GNU Health, which is a software for managing hospitals and patient records. It is deployed, it seems, in Spain, but mainly in developing countries. We have seen them in Laos, there are some in Africa, we know that there are also some in Argentina, Jamaica, Cuba, I think. But I think there are clinics in Spain that use it. And there is also an insurance management software called Coog, published by our customers, which does insurance management and is based on Tryton. And they mainly took the accounting, but nothing at all about the sale, the stock, etc. And they have built hundreds of modules that manage insurance.

Cédric: Another example of verticalization is GnuVet, a version for managing veterinarians.

Walid: You’ve had some little ones!

Nicolas: yes, yes, yes.

The genesis of Tryton

Walid: So, precisely, let’s start with the genesis of Tryton. To talk about the genesis of Tryton, we must therefore talk about the time when you were at OpenERP. What I’d like to understand is what is the path that led you to want to create Tryton, in fact?

Cédric: I think I’ll be given a little clarification again. In reality, I started the project with another partner, Bertrand, who also works at Tiny, and Nicolas joined later. So, really the genesis of the Tryton project, it would be more on my side. Afterwards, Nicolas had a bit of the same approach, but in a slightly different way. So, Tiny, it was called Tiny at the time, the company, and it published Tiny ERP, a business management software that was also open source.

As an employee in the structure, which was a small structure, I think there were less than 10 of us at the time, with my colleague Bertrand, we were, after a year and a half, two years of work in the company and experience, not very happy in reality with the customer service that was provided. We were always a little uncomfortable with the promises made to the customer and with what the solution offered and what needed to be developed, repaired along the way, etc. So, it was quite frustrating as an employee not to have the opportunity to provide work that was considered rewarding. Consequently… We told ourselves that we could do better. And from there, quite quickly, I think we decided, in two or three months, we said to ourselves we’re going to go for it. And so, we resigned and then we started.

Cédric Krier

We didn’t directly take over the code that was hosted by a subversion (editor’s note: otherwise known as SVN), but in fact, it was a subversion that was private. So, as an employee, you had access to it, but when you were no longer employed, you were no longer supposed to have access to it. So, we didn’t take over, we couldn’t take over the history, because at the time, the software was just released as a release, in a somewhat irregular way. And so we started from an archive, but we didn’t integrate it as it is directly into our repository. We took bits and pieces again, block by block, sometimes by rewriting parts, and we rebuilt by picking from the existing code. This allowed us, from the beginning, to correct mistakes that we knew about the initial architecture, to try to avoid resuming them for our departure. Over time, we realized that we had missed problems at that time that we didn’t know about. And from there, we started to rebuild. That was really for the heart, the heart with the thin client.

Walid: So, in fact, the decision to make your own company and your own ERP, it’s not related to technical issues, it’s related to customer relationship issues, right? Or are there also technical issues, in fact?

Cédric: When we were employed, we had identified technical problems that we tried to have corrected and rectified internally. But we didn’t have the possibility, we weren’t given the means to be able to do it. At the time, I know that the company didn’t have a lot of resources either, so it was difficult, you had to balance between the customer and this kind of development. After that, we didn’t know everything about the company, we weren’t in the secrets of the management at the time. We had the impression that we could do better. But it was not possible to do it internally, at least in the structure. The structure was more about chasing after customers, trying to bring in as many customers as possible than rectifying the problems of the genesis of the project.

Nicolas: For the record, in fact, when I left and I hired Fabien (Editor’s note: Pinkears, founder of TinyERP) at the time, I went with someone I met at Tiny, who is called Gaëtan de Menten, and we both left with, exactly that’s very funny, the same observations and the same desires to change things technically and to have a different relationship with code and the way things are done in general. Well, we messed up a lot more, Tryton managed to come, we didn’t work at all. Because we rewrote from scratch from the beginning, we didn’t want to be in the fork at all. In fact, we wanted to start from scratch and that’s the most difficult part.

The first actions at the birth of Tryton

Walid: Tryton is born. If I understand correctly, the first actions, these first actions, are to take over the code, to do some cleaning, etc. When will you publish a first version?

Cédric: I watched the first commit we made, on December 19, 2007. And the first release, we did it on November 17, 2008, so almost a year. I think that’s pretty much what we set out to do: one year to have a usable, demonstrable solution, and to start trying to attract customers. We had a customer very early on, who followed us from the start, which allowed us to survive during that year. At the first release, quite quickly, there was a small community that was created, mainly people who came from TinyERP and who were also a little disappointed by the quality and by the management of the project. I think that we mainly capitalized on the fact that we published the filing directly. Our repository was public, which I think was still not the case with TinyERP at the time. With our first release, we had an open discussion and we were ready to discuss with potential contributors, which was absolutely not the case with Tiny. There was a forum, but in fact, it was more of a forum of users who helped each other, and the company’s employees were not allowed to go and help on this forum, it was only through a commercial relationship.

The mindset at the time of the fork

Walid: What was your state of mind when you did the fork? Let me explain, I participated in a fork of a free project, and for a year it was a big excitement, because there were possibilities that opened up and everything. So, what was your state of mind at that time?

Cédric: quite enthusiastic, we didn’t have any liabilities. We didn’t have to take into consideration a past, maintain compatibility with something that already existed, etc.

So it’s true that we could break everything and decide to change big things, to make big structural changes without too many constraints. And so it’s true that during that year, it was quite fun to develop and work on the project. But once we made a first release, we imposed rules on ourselves.

Cédric Krier

And as a result, these rules have been a bit locked: there have been more challenges to be able to do what we wanted within the constraints we have set ourselves. And a little less freedom, but in a sense…

Walid: What were these rules?

Cédric: A user must be able to switch from one version to another without the need for external services. This makes it possible not to have a vendor lock-in, which is often criticized on some projects: from the moment they use their free solutions, we are forced to go through their service to maintain, because there is no one else who knows how to do it. That’s what Odoo is doing for now. That was a first constraint. Try to have backward compatibility of APIs as much as possible. Although we decided several times to break this, we publicized these changes, explained and informed everyone.

The overview of ERP solutions in 2008

Walid: I wanted to ask you what was the panorama at the end of 2008 of free and open source ERPs. What was there? There was Dolibarr, TinyERP, what else was there?

Nicolas: Dolibarr, TinyERP, ERP5. It was an ERP made in Python, if I remember correctly, by a man from Lille or something like that. The concepts were a bit interesting, by the way. I remember, there was a book on software design, and there’s a chapter on it. It still exists. Oh yes, there was a commit five days ago. There you go.

Cédric: GnuCash. I don’t know if it can be set up as an ERP, but there is GnuCash that exists.

Nicolas: something in Java, like Compière.

Cédric: … Compière.

Walid: There wasn’t much.

Nicolas: No. In the end, there is still not much.

Cédric: ERPnext.

Nicolas: ERPnext indeed.

Cédric: Yes. There is also… Alexor.

Walid: There was room for a new free and open source ERP.

Cédric: The first competition, I think, is with Excel. In many companies, they work with Excel. So, Excel must be replaced, Excel is often replaced. Or then there are really proprietary software, Navision, SAP. It’s more competition than other open source software.

Walid: You publish the first version, you have a community that is created. The question I ask myself is: did you keep in touch at the time at Tiny? Do you know if they are watching what you do? Do you look at what they do too? Are there exchanges in one direction or both? How does it work?

Cédric:

The beginning was a bit chaotic. Because we had a first deal with Fabien, so Fabien Pinckaers, the director of the company, who, quite quickly, when we published code, etc., accused us of stealing it. While we had gone back to the public version, which was under the GPL2 license. From that point of view, we have nothing to reproach ourselves for. In fact, after accusing us publicly, we just wrote a first letter with the help of a lawyer to tell him that he is calming down a little on the accusations. And besides, it never went further.

Cédric Krier

So I think it was more a fear of having a competitor arrive than anything else.

Walid: It was to say welcome.

Cédric: if you want.

Then, subsequently, there was code that was taken over. I’m thinking mainly of a small bookstore that we had developed, which we called VAT Number, which is used to validate VAT numbers from just about everywhere, from many countries. And so, we collected formats and added validators, etc. And we found our code taken as it is, in copy and paste, inside the Odoo modules. What we didn’t like too much was the lack… They had not kept the attribution of the author, the copyright. At the license level, it was good because it was still GPL, if I remember correctly.

Cédric Krier

We had to remind them a little that we had to put … They commented the name somewhere in the file. It’s not quite the best practice, but we didn’t go further than reminding them of that. So, there have been these kinds of code exchanges that have gone in that direction. What we even found a little regrettable is that we tend to develop libraries for general functionalities that are not directly related to Tryton or the ERP, so that they can be used by others. And we saw that they didn’t reuse our library, but the bundle in a somewhat hidden way. We thought it was a bit of a shame not to have this spirit where we could have contributed together to a project… A piece of code, a piece of project

Nicolas: Yes, for example. Pretty much the same idea is when we made our client. Because there’s the JavaScript client, there’s the GTK client, so desktop. To do the tests, we also made a command-line client, well, more or less. In the end, this customer also had an existence. Finally, the idea has been taken up. They obviously couldn’t have taken exactly the same thing. But there was inspiration, I think, from both projects to each other. We moved on to the Active Record (editor’s note: a software design pattern). They followed a year or two later. And we look at what they do and it inspires us from time to time.

Cédric: We, clearly and publicly. We sometimes see commits or changes at Odoo and say: “oh well, this might be interesting, it’s an interesting idea”. And so, we open a bug in our bug tracker with the link to the commit by saying: “hey, they’re doing it like this, it could be applicable for us and it could be interesting”. In the other direction, there is, I think, clearly the desire not to talk about the Tryton project. As a result, we don’t really have any proof, but sometimes there are coincidences, things. You discover that you have an idea, you develop something, and you find the somewhat similar idea that is developed a few months later. So, it’s possible that these are coincidences or not. It’s hard to know. But for their part, I clearly think that the watchword is to ignore and act as if the Tryton project did not exist.

Walid: so the project is under GPL V3+ license. When you got the code at the beginning, it was in license? GPL2? Was he already in his bachelor’s degree?

Cédric: in GPL2. It has been upgraded to GPL3. This was around the time when GPL3 had just been released. There was a whole term around Tivoization. We thought it was probably a good idea to upgrade.

The governance of the Tryton project

Walid: Something else that interests me a lot. I have listened to other podcasts that I will describe in which you talk a little about the second subject that interests me: the governance that you have put in place. There is this desire, from the outset, to ensure that the code remains free. I found it really interesting, especially in a bit of a troubled period like now where projects tend to change licenses to more or less free licenses. And in the meantime, you have also created a foundation. Can you explain to me a little bit the path that led to the governance you have now? Was that what you wanted to do at the beginning? And now, what is the governance? How is the project managed now?

Cédric: I think that at the start of the project, Bertrand and I, we had absolutely no idea how the project was going … at the community level… how we were going to manage. We had absolutely no vision. We said to ourselves: we’re going to make an open source project like other open source projects.

Nicolas: At the level of the license, there is the fact that quite simply… OpenERP or Odoo, I don’t know, Tiny, I think. Tiny still has the copyright on some of the code, so you can’t change it. We wanted to change it, we would have to ask, and I don’t think they would agree.

But otherwise, our vision at this level has always been to attribute the code to the people who wrote it, in the sense that the more people have the copyright, the harder it is to change later. And so, it forces the code to remain open source. That’s also why there’s no CLA, Contributor License Agreement, because a CLA, in the end, gives permission to a company to do what it wants with its code.

Nicolas Evrard

I don’t know if we really discussed it, but it’s something we almost naturally agreed on.

Cédric: Yes, we, from the beginning, we gave each of us the copyright of the code they wrote. There’s no point in doing otherwise. And we don’t see any point in doing it any other way. What would it bring us, apart from legal constraints? We need a CLA, we need to have one, have it signed, keep it, etc. And for what purpose? If I’m asked to sign a CLA, it’s because they want to change the license afterwards.

Walid: It’s because the company retains the right to do whatever it wants with the software that a community of people has potentially contributed to, which is pretty sneaky when you think about it.

Cédric: Yes, yes. And so, I have to say also, I think there’s a point to add.

At the beginning of the project, the community was mainly built with people from the world of Tiny, OpenERP and Odoo, who had a strong tendency to change licenses every 3-4 years. They went from a GPL to, I think, an AGPL, then an LGPL, and now they have a mix with a proprietary part and a part that remains LGPL, but they reserve the right to switch code from one side to the other. All these license changes have created fear among some users or participants in this community, who have redirected themselves to us. And so, it was an important criterion for them: to make sure that the rules were not going to change along the way.

Cédric Kreir

From the beginning, we said that the idea was to have B2CK as a company that contributes to the project, but that remains a company like any other. Not having an advantage or the ability to say, at some point, “the community is big enough, now we’re closing, we’re keeping it to ourselves and we’re making you pay for a license for the rest.” It was a fear that many had, and therefore our way of working… The way we were already managing was reassuring. As a result, we were able to build this idea that the more you share copyright, the more it is protected, and the more the license is fixed. This is a bit like what happened with the Linux kernel , which could not switch to GPL3 because it is not possible to have the agreement of all contributors. At the time, the original clause did not put “or later”. That’s it, so it’s a strict GPL2.

Nicolas: It allows us to focus on the foundation, because the foundation actually comes from one of these fears.

At that time, we had B2CK, and we went to meet people in Spain who were OpenERP users and contributors to certain modules, etc. One of their fears was that B2CK would copy what Tiny had done and take control of the thing. And one way to reassure them was to create the foundation. The foundation is a legal mechanism in Belgium that allows you to create a kind of company with a particular purpose, which must be non-commercial, if I remember correctly.

Nicolas Evrard

Cédric: It’s about securing a property.

We had to give the foundation a property, which is in fact the name Tryton, simply. The foundation’s purpose is to protect it. So, we have defined rules, but they are immutable rules. We can no longer change the purpose of the foundation, and that’s a guarantee that goes beyond simply making a commitment. The state forces us to respect this situation.

Cédric Krier

Nicolas: If by chance, the foundation’s board of directors does not respect the rules, for example by closing the source code, anyone could sue this board of directors before the Belgian courts, in this case, to enforce the open source nature.

Walid: And so you decide to create the foundation. What year is it now?

Cédric: in 2012.

Nicolas: yes, November 2012. We can see it as a way of reassuring people, because in the end, for us, we didn’t see the problem.

Cédric: We had secured the source code in a way, but the other risk was the name. The Tryton brand and the domain name were the property of B2CK. We bought them with B2CK, because we had to take out the funds at some point. And so one of the risks was that we would take control of the domain and point to something else. All the work of building the brand is stolen in a way. It was a way of protecting the project.

We looked for the right legal form. It’s not easy because lawyers don’t do that often and don’t always understand the request, the difficulty. But also what is often done are non-profit organizations, but they don’t protect in the same way. There is always a way to take control of a non-profit organisation and change its corporate purpose.

Cédric Krier

So, it took time between researching and writing statutes that suit us and that protected the project. To find a mechanism that allows for a good balance between those who will be responsible for the foundation and the rest of the community who will have a kind of balance of power. So that’s it, it was things to invent and imagine.

Nicolas: In our foundation, we have the principle of supporters, because a foundation cannot have members. The term “member” could not appear in the statutes, so the term “supporter” was used. People become supporters of Tryton and constitute an assembly of supporters. This assembly of supporters can, by a majority of 2/3 or 50%, – I don’t know, anyway it never happens – decide to completely change the board of the foundation. He is elected for 5 years.

Walid: Who is this board made up of?

Cédric: When we were created, we were three founders, so the three owners of B2CK. We are founders because we are the ones who bring good. So we have a special legal quality. We chose four other members. So the three of us put ourselves in the founding number, on the board of directors, and we included four other members. So, we tried to have geographical diversity.

Nicolas: There was Udo from Germany, Albert from Spain. Sharon of India, and the fourth,

Cédric: Sebastien,

Nicolas: oh yes, there you go, eebastian, so from Argentina.

Cédric: from Argentia. So we tried to have a geographical university, also of countries, obviously, of languages, well of cultures, finally to try to represent the diversity that there is in the community on board. Then, the board is renewed every five years by co-optation. We are calling for candidates, in fact, to run. That’s how the edge decides to operate. That’s not really in the statutes. We will have to help the candidates and the previous side chooses the next members. It can be the same. There is no limit on the number of terms that no one can serve. It’s hard enough to find people. It’s on the limit, we risk …

The Tryton Community

Walid: So, there is a foundation with members who are representative of the community. There is the community. So, I guess in this community, there are users. There are also potentially service companies, people who… how diverse is the community around Tryton?

Cédric: If you’re just talking about the supporters, then we’re talking about it… Being a supporter is just asking, you just have to ask, so there’s a little bit of everything, there are users, there are developers, there are service companies that provide service on Tryton. So we really have all types of entities. Afterwards, if we want to talk about the more general, larger community, the really lively part that participates, etc., it’s mainly developers who are… often developers who are in a company that provides service on Tryton.

Nicolas: The community gathers mainly around the forum and we see that there is still a good small part of German developers, a lot of Spanish speakers too who do GNU Health or Tryton.

Cédric: yes, in the end,

we don’t have a very clear vision of who uses Tryton, on the forum, we have nicknames, but we don’t always know what’s behind it. We have live events, and so we can put faces to nicknames, but it’s always a game. In fact, we are quite unclear about who uses Tryton, and who is really in the community.

Nicolas Evrard

Walid: Do you have customers that you have the right to mention, just to give an example, who can use Tryton for example?

Nicolas: I mentioned Coopengo, yes, but these are the people who are doing the verticalization I was talking about, Tryton, insurance, it’s one of our main customers.

Cédric: I think we can talk about Jurassic Fruit.

Nicolas: we have Jurassic Fruit,

Cédric: It’s a site. It is an online fruit sales site.

Nicolas: We have a few… Oh yes, prestigious customers, Saint Luc.

Cédric: they are the leaders of billiard balls. I think they make 80% of the billiard balls in the world. And they use it for almost… They are in the process of moving on to almost their entire process.

Cédric: Yes, they started with warehouse management and then gradually, they add features, purchasing, sales. They are complementing, they are replacing a homemade, historic ERP with Tryton.

Nicolas: We know that among the people who contribute to Tryton, there is a company that makes I don’t know how many percent of the strawberries that are made in Spain. There you go. So in my opinion, these are people we don’t know, but there are some who have a good market share in their sector. And what happens is that since we don’t have a head company that runs the marketing, that runs the software, in the end, we don’t know. We don’t know what’s going on. Well, yes, we know that, of course, because since we are still people who contribute a lot, people talk to us, but in the end, there are still people who use it without ever telling us anything.

Cédric: And B2CK, if we come back to B2CK, we mainly have other IT companies that have customers as customers. So, we are often in the second level. We have some customers in the first direct level, but we mainly have customers in the second level. So, suddenly, we can guess the customers behind it. Yes, and there is also an extra point. I think there is also a part of rebranding. So, there are service companies that will install Tryton, but without saying that it is Tryton. Maybe just rebranding the logo, or making a logo in their own way, and putting a little theme on the customer and presto, they make it their solution. In a way, that’s fine with us. They have every right to do so. It’s a bit unfortunate for the notoriety of the project.

Tools for collaboration

Walid: You talked about a forum. What tools are used to collaborate?

Nicolas: So the forum is Discourse. More and more free software is being introduced.

Cédric: We have an IRC forum. Rather quiet, because on Discourse it’s still much more pleasant and more asynchronous, so it allows a lot.

Nicolas: There were mailing lists, but we killed them for Discourse.

Cédric: We didn’t want to multiply the channels, to disperse, otherwise everyone remains in their silo, in their favorite channel. So we really centralized everything on Discourse.

Nicolas: And then it looks bearded, the mailing lists.

Walid: IRC too.

Cédric: And by the way, now that Discourse has… We also activated chats on Discourse. It’s true that there is a bit of a redundant side. The interest of the IRC was for quick little messages, someone who has a small problem, he can ask his question and get an answer quickly. In fact, Discourse’s chat could replace IRC in a sense.

Walid: And for the forges?

Cédric: We’ve had our depot on Mercurial since the beginning.

Nicolas: and it was self-hosted

Cédric: Yes, we hosted it on our servers with just the basic web service that is in Mercurial. And we used Rietvelt as a code review tool. It was the tool that Guido van Rossum, the inventor of Python, had written when he was working at Google for the review of the Python project, which the Python project stopped using a few years ago. The project is no longer too maintained, I think we must have been the last ones to use it. As a result, it pushed us to look for an alternative solution. And now, for the past year, we’ve switched to a forge called Heptapod, which is actually a fork of GitLab with Mercurial support. It’s a fork that is meant to be friendly, so in fact, they just add components to support Mercurial instead of Git. And we are hosted on their platform. They have a platform of… So it’s foss.heptapod.net. So now, we have our Tryton project that we have now migrated to a monorepo. So before, we had one repository per project and module. For the migration, for the passage to the forge, we made a monorepo. The changes we make quite often have implications in several modules, or even in all modules. It’s much more convenient to have a single global Merge Request that contains all the history of the change than to have lots of small repositories with Merge Requests that have to be made at the same time. In addition, it also allows us to have a CI (Editor’s note: continuous integration) which is much more stable since we always test a coherent whole, a version, and finally a snapshot of the entire software.

Nicolas: It’s the foundation that sponsored the switch.

Tryton’s strengths

Walid: Where is the project today and what are the strengths of Tryton in fact? Why is Tryton well suited today now?

Cédric: I would say modularity. We really pushed the concept to the extreme, that is to say that we can, via the addition of a module, modify almost any behavior of the software. So we can modify the standard flows that we implement, which are generally classic flows, but each company has its own specificity, etc. So we can plug in anywhere in the code to alter the behavior and adapt to the needs, and therefore be able to really adapt to very specific workflows.

Nicolas: On the other hand, in relation to where we are the project in general, there,

Cédric: We’re at cruising speed, I’d say

Nicolas: yes, that’s right, we’re at cruising speed. We, B2CK, know quite a few companies that have been using Tryton for 10 or 15 years and that are working.

So, we don’t know the exponential explosion that Odoo is experiencing, for example. That’s for sure, we’re not going to deny it. Personally, it’s not something I’m particularly looking for, so I’m not worried about it at all. Yes, we could probably have more developers, but it also doesn’t come without other constraints and sometimes without some friction or things like that.

Nicolas Evrard

Cédric:

It’s pretty easy to get people to contribute, add modules, make a module for their needs, etc. What is much more difficult is to have contributors who will really do the work of maintaining the project, keep the dependencies up to date, evolve on new versions, fix bugs that are a little complicated in the core, etc. Or even just optimize.

Cédric Krier

Really everything that is work of optimization, of improvement, really in the heart of the engine. We have B2CK working and we have a few contributors who do it. It’s not huge and it’s hard to find because it’s not obvious. You have to have a lot of experience, know the entire code well because when you touch the heart, it can have an impact everywhere. It’s not easy. But there’s a lot of development that’s being done, but outside of Tryton. There are repositories everywhere that exist, from personal projects or companies that implement modules specific to the needs they have encountered, etc. So there is a whole part of modules that exist in nature. Moreover, there is a project to try to set up, to make a map, a directory of all these external modules to give a little visibility.

The future of Tryton

Walid: The last point I wanted to address, which was the future actually. What are the big issues that you think are important for the future?

Nicolas: At the community level, there is this mapping of third-party modules. We also wonder if we shouldn’t… But that’s a big “controversy” in the community about whether or not the modules should be hosted by the project itself or by external parties. We, naively, thought it would happen by itself, but it doesn’t seem to be… Forced to note that it didn’t happen. There is also no mapping that has done itself, a bit like Django Package. Django Package, for example, is really good, it shows all the packages, people can put comments, etc. But it wasn’t Django’s project that decided to do it, it was other people who did it, and then they were like, ah, that’s cool,

Cédric: We can resume.

Nicolas: Django recognizes it,

Cédric: What.

Nicolas: There is this at the community level, I think it will take more time for it to happen, since it has been dragging on for years. But I think that if there is a stronger will now that it happens, I think it will happen. And then, there are technical challenges that are updates. We would have to update the client, for example, to GTK4. I talk about it almost every year. We could rewrite… the JavaScript we use is dated, we could reorganize it differently, we could modernize it, it simplifies life for a lot of people.

Cédric: We have the idea of implementing a REST API with a particular architecture to make it easier to develop related sites and communicate just with a REST API. For the moment, the way we develop this kind of site is very much coupled with Tryton. So I think it would be nice to be able to decouple it a little bit more with an API. That’s one of the projects.

Nicolas:

We often say that we don’t have a roadmap, people sometimes ask us “is there a roadmap, when will this module be available?” In fact, it doesn’t exist. It’s the community that does it, and then the community does it either by developing it itself or by paying one of the boxes in the community to do it.

Nicolas Evrard

Cédric: Developments are driven by need, in fact. I just thought of another project that is also underway, which is the rewriting of documentation. In fact, a year and a half, two years ago, we structured the way we wanted to document each module with a predefined skeleton that we have to apply to all the modules. We have already rewritten the documentation for the main ones, we have rewritten 50. The difficulty is that you have to know to rewrite the doc, and once you know, it’s not very interesting to write the doc.

Conclusion of the interview

Walid: We’re coming to the end of the interview. In conclusion, I had some questions to ask you. First question, what would you say to talk about Tryton to people who don’t have an ERP?

Cédric: I imagine that if they don’t have an ERP, they work with Excel, it means that they don’t have thousands of Excel sheets to update and duplicate, to copy and paste left and right and to transfer information.

Nicolas: It also frames the processes. There will be fewer deviations from the norm and this will allow for better optimization.

Cédric: Standardize processes and also communication within the company. And so we’ll be able to communicate with everyone with the same information. Information will be more shared, more disseminated.

Nicolas: And also depending on the size of the company, it can better define everyone’s tasks.

Walid: Second question, what would you say to introduce Tryton to people who, like me, have deployed other ERPs, free or not?

Cédric: With Tryton, the configuration and customization is very advanced. We can meet the needs of the customer, of the user in almost all cases, and that the base on which the installation will be based, therefore the base on which we will build, is sound and has a coherent and stable design as well. But we based a lot of our design at the beginning on an ERP design book, in fact: data model resource. Architecture, what we’re going to… you will build. These are stable and robust foundations.

Nicolas: And also that migrations are included.

Walid: This introduces my last question, which is how would you introduce Tryton to free software professionals who are already working on free ERP like Dolibarr or Odoo?

Cédric: Migrations are included.

Walid: for Dolibarr too. Dolibarr,

Nicolas: It’s not included.

Walid: Oh yes, it’s in it. Yes, yes, I can say that it’s in the migrations.

Nicolas: By Odoo for example it’s not.

Walid: Apart from migration.

Cédric: Tryton works. Is really object oriented. We work on objects that we make evolve, on which there are flows, disconnections, etc. In fact, it’s quite nice, because you don’t have to write a lot of code to meet the needs. The code is quite clear and readable, quite quickly understandable.

Nicolas: For Odoo, I would also add, for example, that you don’t do calculations with floats, quite simply. It’s a bit of a bad mouth, but here’s the thing, when you do accounting with floods, it’s not great.

Walid: It’s the private joke to finish. We’re coming to the end. Shall I give you a little op-ed if you have a message to convey?

Nicolas: Damn, I said to myself, this is the moment I like best. He thinks of something cool and I forgot.

Cédric: Well, Mercurial, that’s cool. It’s better than Git.

Nicolas: Yes, that’s it.

Walid: You are one of the last I know who uses Mercurial, if not the last.

Cédric: really? In fact, Mercurial is used by Google, Facebook, Nokia. It’s probably one of the source versioning systems that probably has the biggest base, which manages the biggest codebases.

Nicolas: yes, I wouldn’t venture to just say that.

Cédric: So, at Google, I think they rewrite bits and pieces, etc. But these are companies that have monorepos that are…

Walid: In any case, it’s the first time we’ve talked about Projets Libres! de Mercurial.

Nicolas: Can we explain why?

Cédric: What’s really good about Mercurial is the command line. The options are consistent, the operation is consistent within the entire project, and there is no surprise. And on top of that, it’s extremely difficult to break your repo. There are safeguards everywhere. Mercurial prevents me from doing stupid things, while I don’t use Git very often anymore. But every time I use, regularly, I find myself breaking my repo and having to re-clone because I’m lost or I’ve lost developments.

Nicolas: Mercurial, on that side: they made a command line that is really ultra clean and does the right thing, whereas Git is a real mess. So, it’s a lot of things, it’s great, it’s super fast, it’s ultra-efficient, but it’s an endless mess.

Walid: It works. Listen, thank you very much for taking the time to exchange 15 years later on Tryton to see a little bit of the very interesting solutions that you have put in place and quite original in the end like the history of the foundation. That’s really interesting to be able to discuss this. I invite everyone to go and see Tryton. I will put the links, of course, in description. As usual, to the listeners, talk about it around you. Feel free to comment. The best way to comment is on Mastodon or also on LinkedIn. Both, I answer. These are the two simplest ways. See you again. I hope to talk to you again in a while. Be well and see you next time.

Nicolas: thank you,

Cédric: Hi.

Walid: See you soon.

License

This podcast is published under the double license Art Libre 1.3 or later – CC BY-SA 2.0 or later.

, , ,