A Flexible Open Source ERP Framework To Run Your Business - Episode 255


Running a successful business requires some method of organizing the information about all of the processes and activity that take place. Tryton is an open source, modular ERP framework that is built for the flexibility needed to fit your organization, rather than requiring you to model your workflows to match the software. In this episode core developers Nicolas Évrard and Cédric Krier are joined by avid user Jonathan Levy to discuss the history of the project, how it is being used, and the myriad ways that you can adapt it to suit your needs. If you are struggling to keep a consistent view of your business and ensure that all of the necessary workflows are being observed then listen now and give Tryton a try.

Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? With Linode’s managed Kubernetes platform it’s now even easier to get started with the latest in cloud technologies. With the combined power of the leading container orchestrator and the speed and reliability of Linode’s object storage, node balancers, block storage, and dedicated CPU or GPU instances, you’ve got everything you need to scale up. Go to pythonpodcast.com/linode today and get a $100 credit to launch a new cluster, run a server, upload some data, or… And don’t forget to thank them for being a long time supporter of Podcast.__init__!


  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.
  • Your host as usual is Tobias Macey and today I’m interviewing Nicolas Évrard, Cédric Krier, and Jonathan Levy about Tryton


  • Introductions
  • How did you get introduced to Python?
  • Can you start by describing what Tryton is and how it got started?
  • What kinds of businesses is Tryton most suited to?
    • What kinds of businesses is Tryton not a good fit for?
  • Within a business, who are the primary users of Tryton?
  • Can you talk through a typical workflow for interacting with Tryton?
  • What are some of the most complex or challenging aspects of modeling a business while maintaining a high degree of customizability?
  • Can you describe how Tryton is architected and how its design has evolved since it was first started?
    • If you were to start over today, what would you do differently?
  • There are a number of plugins for Tryton. What kinds of functionality can be customized using the available interfaces?
    • What is the process for building a custom module for Tryton?
  • How do you manage sustainability of the Tryton project?
  • Given the criticality of the Tryton platform, how do you approach ongoing stability and security of the project?
  • What is involved in deploying and maintaining an installation of Tryton?
  • What are some of the most interesting, innovative, or unexpected ways that you have seen Tryton used?
  • What is in store for the future of Tryton?

Keep In Touch



The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Click here to read the raw transcript...
Tobias Macey
Hello, and welcome to podcast dotnet, the podcast about Python and the people who make it great. When you're ready to launch your next app or want to try a project to hear about on the show, you'll need somewhere to deploy it. So take a look at our friends over at linode. The 200 gigabit and private networking node balancers, a 40 gigabit public network fast object storage and a brand new managed Kubernetes platform all controlled by a convenient API, you've got everything you need to scale up. And for your tasks that need fast computation such as training machine learning models or running your ci CD pipelines. They've got dedicated CPU and GPU instances. Go to Python podcast.com slash linode. That's Li n o d today to get a $20 credit and launch a new server in under a minute. And don't forget to thank them for their continued support of this show. Your host as usual is Tobias Macey, and today Name interviewing Nicola era Cedric Korea and Jonathan levy about trading. So Nicola, can you start by introducing yourself?
Nicolas Évrard
Yes. Hello everybody. So I'm Kara. I work for b2c key, which is a company working on Triton. And I'm also the president of the Triton Foundation, which is the subject of today.
Tobias Macey
And Cedric, How about yourself?
Cédric Krier
It already, so I'm setting clear. I am the co worker of Nicola ad b2c kids, and I'm currently serving as the leader of the Triton project.
Tobias Macey
And Jonathan, how about you?
Jonathan Levy
Yes, my name is john Levy, and I am not one of the core devs like Nicola and Cedric I am instead a Triton user. I am a lawyer by training with advocate consulting Legal Group and we have been using Triton for eight years and I'm involved also with the Triton Foundation,
Tobias Macey
and go Back to you. Nicola, do you remember how you first got introduced to Python?
Nicolas Évrard
Oh, it's almost when 20 years ago. In fact, I was at the university. I did my thesis in scheme, which is a dialect of Lisp. And when I was job hunting, some, of course, there is not many jobs for scheme programmers. But one guy on the mailing lists told me you should be looking at Python. And indeed, it was a big, good idea because I was hired by a hanger, which is a company in Belgium, the one that organized the very first euro buyten conference. And then I worked on prune and zope. So it was in 2001, I guess.
Tobias Macey
And Cedric, how about you? Do you remember how you got introduced to Python?
Cédric Krier
I'm not sure But I think it's about 15 years ago, when I started to work at a company TRP, which was writing the epi in Python. So it just I learned from there.
Tobias Macey
And Jonathan, how about you?
Jonathan Levy
Well, so as I said before, I am a lawyer by training. But I ended up at a firm that also did some heavy accounting work. And we had a series of Excel workbooks that someone along the line had programmed some Visual Basic for Applications. But there wasn't anyone left in the company who was able to work with that that person had left. And so I decided to dig in and thought, well, I've always been curious about programming. So let's see if I can do this. And so I took over the Visual Basic application stuff and that got bigger and bigger over the course of some years and got to the point where that tool wasn't going to cut it. We were going to need a bigger, bigger tool. An engineer Friend of mine suggested that I should learn Python. I did some study on that I tried to do migrating from Excel to a Django project that didn't go so well. And then I transitioned from the Django project to Triton.
Tobias Macey
And so in terms of the Triton project itself, can you describe a bit about what it is and how it got started?
Nicolas Évrard
Triton is in fact, a business software framework. So it provides all the required pieces that are needed to create business applications. And in top of that, the Triton project provides also a set of modules that are covering a wide variety of use cases. It started 11 years ago, I don't remember the date Exactly. And it's a fork of tiny European fact which is when Better now now as Odoo I guess that a lot of people know do already. It's it's also a Belgian company where Cedric and I we both work at the time and we decided to leave this company and to create a fork for Well, I will let probably Cedric explain the reason of the fork because he is the one behind.
Cédric Krier
Okay. So indeed, it was 10 years ago I think or a little bit more, another coworker but Oceana and meet we're working at teeny, on yappi. And we were not very satisfied by the quality of the product and our the project was managed, managed, and how it evolved, it was evolving. And so as it was a number truce project, we decided to leave the company and start our own version of dis yappy. And so we founded PDCA as a company to provide services. And we started to work on Triton and redesign and change what we wanted to change, since task we work it on was to improve the quality by adding test, we make the development more open. So we publish it our repository because at this time tip didn't publish his repository. And we are so improving the design of all the modules and all the community communicate each other. So this took us
Tobias Macey
About one year of work, until we get the first release one, the zero. And then since we make a release every six months, new modules and so on. And you mentioned at the beginning that you're all members of the foundation for Triton and I'm curious if you can discuss the relationship between the Triton Foundation and the Triton project and the reasoning for creating that type of an entity for governing and managing the project.
Jonathan Levy
Sure, if I could jump in quickly to answer that. So, the Triton project, from my view has shown a great commitment to the principles of open source and B to ck where Cedric and Nicola are, is a company that has devoted a lot of resources to furthering Triton, but my my feeling was that they didn't want a perception of that. This was really pigeonholed by b2c K, and instead, they proactively took the step of forming the foundation as a nonprofit under Belgian law and contributing all the intellectual property of the Triton project to that foundation. Now b2c k remains very dedicated to advancing Triton. But I think that that the foundation exists to make sure that Triton will remain a healthy open source project into the future without relying on any specific company.
Nicolas Évrard
Yes, I may add something maybe. Indeed, it's expected that the in fact as we are a fork of tiny European, at the time it was opening up we receive a lot of requests of companies that would like to invest their time in Triton. But some of those were afraid that B to C k was the main Driving Force and that's one day or another we might close the code through the source code and never have complete control over the project. And that's our as Jonathan said, we decided to create a Bayesian foundation because this condition under the bed, Janos make it a requirement that you have to follow nonprofit goal. And in this case, it's the development and publicity of Triton. And there's a small mistake. The foundation doesn't all the copyright, in fact, every contributor still all his copyright. So Jonathan, for example, or it could be right everybody all's his own copyright and so it makes it difficult to to change the license of the project because the license is GPL v3 or later and you would have if you want to change Contact everybody. And the fact that you have to contact so many people, it will make it difficult. And it allows us to to keep the GPS I guess forever.
Tobias Macey
Yeah, I know that things like contributor license agreements have been a very contentious topic and a lot of different projects. So it's interesting that you've decided to avoid that entirely and just let everybody own their own copyright as a guard against somebody relicensing the project in the future.
Nicolas Évrard
Yes, that's that that's the contributor license agreement that we we have some issues with, we decided to to get back together. So against those changes by by distributing the copyright, exactly that you're on.
Cédric Krier
Yes, indeed, we are in the same situation is the Linux kernel, which is GPL. Two, but it's also the copyright is shared with a lot of developers. So it says Kind of prediction in some way.
Tobias Macey
And so the project itself is focused on providing the software and the utilities necessary for being able to run and manage a business. I'm curious if you can discuss a bit about the types of businesses that try in is most well suited to and some of the cases where it might not be a good fit for a particular type of business.
Cédric Krier
Indeed, the the main target of Triton is the small and medium enterprise. So I would say it goes from one employee to 200 employees. And for now, the functionality the tasks that are covered by Triton can be enfold to companies that are in the old sales business or the Manage they have to manage a warehouse or stuck or so it works for service companies and for production company. The type of Companies that for now we are not providing good enough features for them. It's mainly the retakes the small retails companies because mainly we don't have a point of sale for now. And also what we have seen is that we don't fit when we see companies that are not well organized when the very small companies sometimes rocks with just papers and busted and so on. And they're very difficulties to go with an organized tool that forces them to follow some workflow and stuff like that. So usually it's because this kind of small companies are no not mature enough for yet for an EMP, but sometimes going trying to implement an EMP inside the company is also a way to organize the company and follow the best practice and find workflow and so on. No one
Jonathan Levy
is upset. The way that I would describe it is first, we have to talk about what exactly Triton is. So there's the Triton kernel, which interacts with the database, typically Postgres, and on top of the kernel, people implement these plugins. And so as Cedric was describing there are excellent warehouse plugins excellent project for service companies plugins. And so there's a there's a divide between Triton can be fantastic for some companies that may not have pre made ready to go modules available. It would just require somebody to to write the module. Okay. I would say that thinking about it broadly that way, any company that is needing a database to keep track of, you know, their internal machinations, and we're Postgres would be an appropriate database. Any company like that Triton would be certainly a project to consider and very likely the would find that there are ready to go off the shelf modules that can take care of what they need. Now as far as where wouldn't be a good fit, there are companies that don't use a database as trite, as Cedric was saying that maybe they are small enough that they can just kind of keep track of things that just personally and short if they don't need a database, Triton wouldn't be a project for them. But if you need a database, and Postgres is the right scale a database, then I would say try it and something to consider. And so
Tobias Macey
in terms of the end users of Triton, I guess who is it designed to be targeted at primarily as far as the people who are going to be interacting with it on a day to day basis? And what are some of the considerations or design challenges that you face in terms of evolving the product keeping those people in mind?
Nicolas Évrard
Oh, that's a tough one. I mean, you it is a year p it's mainly a backup. It's designed it for back office users. So we have two to two clients, one, which is the origin, our client that was developed, which came from the fork. It's a GTK client. So based on the toolkit made for the gnome project, and we have the JavaScript client, which obviously works true to your browser, and we try to make those the most ergonomic as possible. But it's not an easy task. I think that the GTK client is probably most more economic than the then the JavaScript one. But indeed, on the other hand, the JavaScript one is easier to deploy and so on. So it's, it is it's true, and it's quite difficult to to know which one to choose. In fact, I think people can use both and usually back office user will use the GTK client that they can install and those those back office user are accountants purchase management people and account managers and belie that that that they do form filling and they have to search some information in the stem to see why a shipment isn't arrives or to fill the fact that you have lost 10 pieces of a product or
Cédric Krier
something. And the way we try to keep the economy and the satisfaction of the users is that we try to make change, smooth step at a time and build on the existing and try to refine it and improve it progressively. This way we which with early feedback for small change, and we try to always improve it or take the feedback in consideration for the next proposal of change. And also as it's a community project, we we have inputs from the old community, who can say the world about the interface and they are going to mean our things are done. So
Tobias Macey
and then as far as the actual workflow of using Triton and being able to maintain an appropriate level of structure for the workflows well, providing the flexibility needed to model a given business. I'm curious if you can just talk through maybe the day to day interaction of a typical user of Triton and maybe some of the customizations that can be applied to simplify their operations or to match the specifics of their organization.
Cédric Krier
Okay, so the main goal of an EMP is to summarize data in one database. So this way you don't need to duplicate and to reenter the data in many different software and also it helps you to keep the integrity of your data. So the typical workflow that you you have in Triton is that you have the salesman who enter surrender in the application. So, he will select an existing party from the address book already store it in the system and he will pick some product that is sold selling. And once you have filled the sell order, it will just confirm by clicking on a button and automatically the system will create the In the command to ship the product to the customer, but also the invoice for the accounting. And also, as you have a shipment to send, the system will know automatically if you need to give chance to supply the warehouse from where you are shipping the product because maybe you don't have enough product for this or set order or you have a rule that you want a minimum quantity of product and then automatically Triton will create a purchase request for for missing products and the purchase manager can see those requested that are created automatically and he can convert into a purchase order by selecting the supplier that fits for this pair of chairs and make the negotiation With the supplier to receive the product, and this document, the purchase that would be created out of the request will also create a shipment, but name commission shipment from the supplier. And so when you receive the product, you will validate the incoming shipment that will fill the warehouse and you will know that your shipment for the customer
you can now
Cédric Krier
process it because you have received the product. So it's all the information stored in to one database. The information is shared across all the commands and they can trigger automatically some
step in the workflow and so on.
Jonathan Levy
So what was just described there was functionality that you get through a module but so that was the we don't use that much The product shipment module or the warehouse module? Yes, yes, the forum and Triton, the way I would think about it is that you have the desktop client that gives you automatically many tools for browsing or editing the data in the database as well as excellent tools for restricting access or creating groups of users that have limited access to various parts of the database. And that is just automatic self working, you get the system going, and you have that layer. In addition, based on your company's specific needs, you can write workflows into modules. And so you would create a custom module for your company or maybe there's an off the shelf one that fits you well because there are many off the shelf ones now that will allow you to go through a workflow as was described there where you place an order and then take it from order placement through every stage of the warehouse and the shipment out, etc. But You have the flexibility to write whatever workflow you you require. Typically how your employees are using Triton, it depends on what the employees role is what they need to do, they can use it in either way to just browse and edit the software, excuse me the database information, or to take steps through specific work throws that are written into a module. Yes, of course, each workflow step can be customized can be automated or not. And you can add more steps if you want.
Cédric Krier
Everything is flexible on this side.
Tobias Macey
So this is probably a good opportunity to talk a bit more about the architecture and the implementation of Triton and some of the ways that it has evolved since you first forked it from the parent project.
Nicolas Évrard
So the architecture of Triton is synchronous treaties application so the usual treaties To database, you say that the business logic and then the client, which which is I explained is is our booth thin clients one available for the desktop users and one for, for people through their browser in JavaScript. And so this is the big picture. Then in Triton you have several other layers. So the first one which provides the access to the database, which is currently following an active record pattern. Previously, it was using a data mapper because tiny RP at that time was using this pattern. They switch they switch later, but just nothing to do with us. And thanks to the activity got, we can do introspection on the classes and we infer the database schema and we create new columns in the tables we create of course also the tables you required then you have all the business logic where you have the notion of users groups, and then everything that is needed by by your module your own module. So, for example, if you make a module that will model a sale, you will obviously have the sales letter with the company that that is selling something the party you are selling to the currency you are using, then you will have some cell lines which the quantity you sell the unit of the project you are saying the project of course, you are setting the taxes and so on and so on. And with all that, you have one Triton module which muddles the workflow, which pilots all the steps that your cell your cell will go through so for example, you create the in the start a draft sale and then you confirm the state after discussing it with your customers. And after what if you you process the sale and it will create a shipments eventually if you are selling a product and so on, it will also create an invoice at the time. And the next step is displaying all this information to the user because we have the good that we have to user interface. And the user interface is specified also in the modules, thanks to XML files, which defines all the fields are set up on the screens. It's almost like HTML if you want but less flexible, and we send this XML to the client. The client display all the fields on the on the screen and the user have also the buttons so they can trigger workflow steps and so
Cédric Krier
on. Just want to add that particularly of Triton and in the design, it's the modules and the modularity what happened is that each module can define classes they can be base classes or a kind of
partiality class
that will be used to constrict the main class of the activity code. So, depending of which modules are active activated, the server will build dynamically the class by composing all the small paths of all the small classes that are disseminate in different produce to construct one the main class for a kind of document this Where we can have a material that define a main object I can keep with the same example and a another material that extend the sale Medan by ID, for example, a new field or a new step in the workflow or new methods and so on. So that's the server we combined both class to create one main class that will be always be used by the server to manipulate the object. So, we dynamically create those. base class. And this gives the power of in Triton to be very flexible because, by activate a module in Triton, you can modify the behavior of existing objects directly And you can really modify any property of the of the object. It can be a field of the class, the methods on it, and then so on. And of course, thanks to the introspection to create the database, she met scheme, the activating a Medusa that the new field will automatically create the new currents in the in the database.
Jonathan Levy
Well, let me talk about that just a little bit more because what Cedric is talking about here is one of the things about Triton did just I find remarkably clever. It's this different inheritance model where let's say that you have a base module like the party module, okay, which is a standard module off the shelf and it defines a party class. And then you have two other modules that you want to rely on. And say one of them creates a variant of party where now they have some new database attributes. Let's say middle name, let's say based party has just first and last name. Note, this other module has middle name. And now you can create a second new module that also extends party adding whatever methods or business logic or database columns you like. And you don't need to have a linear tree of inheritance where you've got base module party and then module a inherits the party model from the party module, that module be inherited from module a. Instead, there's this plug in logic that's used, that allows you to use these modules much more flexibly and install them through PIP and you don't it of course, anything that is powerful, you could get yourself into trouble, right. And so you do need to, of course, to be careful that you're not going to create contradictions across the modules, but it's a very clever, different inheritance scheme that I've never seen anywhere else and Triton lets you use uses that to let you use modules. And it just sort of plug them in as you like. And it provides you with some very useful hooks to take care of things like migrations in the register method of models and stuff like that. I think that it is just very well designed for modularity, and etc. I have never asked you, but where did this idea for that inheritance model come from? Is that something you saw somewhere? Or did did you just think about and the way it's done is through it'll construct this multiple inheritance, where at that startup time you're creating a new class, it's inheriting multiple from each of the declarations in each of the sub modules. In fact, I didn't
Nicolas Évrard
reply to that because that's an ID we had with a former tiny up employee guy don't even when I was there, we we were working to the together there we at one month to do something that we Found cool. And I remember that we've done that together. So it's it exists also, you know, do in fact, and it's, we had one month to do it, it was a bit too short. So the FBI and the guy behind to do finished it, but not as as cleanly as we would have done it. And so yet the ID it's it's basically it comes from the fact that we were playing with meta classes in Python at that time. And we were pretty convinced that by using meta classes, you could create classes that would do what, what tritons does know and what do those
also, of course,
Nicolas Évrard
so it's a it's an ID we had, I don't know maybe for 14 years ago of 15 years.
Cédric Krier
Because I run into a similar design indeed in Firefox yet, but it's I think it's no more in the current Adams because the use web extension stand up. But before that you could tune all the interface, the doodle stuff, I don't know, if I remember. And they were also merging class kind of classes together to, to compose the interface and, and the behavior. It's the only time that I see something similar, a little bit similar that depending on what is activated you compose a class with about partial classes aren't that yet for sure. That's one of the power of the main reason to use Triton is this powerful extension way, because it allows us to build simple blocks. But there's with simple functionality and compose them. You pick the modules you want to use by functionality and you can just extend them or make some glue to make them work together as a unit. And this way you you reuse a lot of existing stuff that the project provides. And you have just some glue code or some small customization to create.
Tobias Macey
So for somebody who's interested in creating their own extensions and modules to plug into try it in what is actually the process of getting something started and getting it integrated and what are the available extension points for Triton for them to be able to customize any particular internal behavior of it.
Cédric Krier
We have first two steps to create Get your own modules what the project provide a cookie cutter, a cookie cutter template, I don't know if you know about it cookie cutter is a project to to scaffold for your project. So it asks some questions about the name, the version you want to use, and so on. And it creates for you the skeleton of the modules. And it's something already working, you can just put it in the Triton modules folder and you have your module. But of course, it does nothing, because you have put any new logic in it, but from there you can define a new class that will be registered in the system or or modify an existing classes. So that's for the Python path. You write classes in your Madeira. And for as Nicolas, say, for the view layer, you just have to write some XML layers that define the position of ice on the screen. That's the way you start to work. To customize Triton for you. Now if you want to contribute to Triton, the best is to first fetch the source code from the repository. It's on the website of Triton and we have a procedure to submit patches to contribute review process and we welcome any improvement that people can provide on Triton. So creating a patch is the simple way when you want to fix or improve small stuff. Once you start to be confident and you seem to You can contribute a full module, we first ask people to write what we call a blueprint. So it's a description of your goals and how you are going to implement it, and so on. It's a on our form that you you post that and people can discuss about the IDs, and the design and so on until we reach a kind of agreement about the best solution, the best way to implement your new new feature. And then, once it's agree, you can submit submit a big batch with all your modules, and then start the review process from the community and so on. Until, again, we reach an agreement about quality of the of this mission. And once it's done, one of the the core developers will push for you the the new modules on the Triton depository, and it will be part of the next release.
Jonathan Levy
Now that, of course, is the process for towards the official core modules. You can of course write your own module for your own your own business, or you can write modules that you open source and there are a significant number of modules available on GitHub or Bitbucket that are not part of the core or not officially, you know, sanctioned by the Triton project. And so of course, use them at your own risk and always know what you're installing. But there are other modules available Of course, you just the core one, you can publish your module on pi pi. A Medusa is a standard Python package
Cédric Krier
that you can and you can find a lot of Then one pi pi. By the way, we have a classifier on pi pi, the Triton is in its framework Titan, so people can use it to, to filter and to find, try to reduce their.
Tobias Macey
And in terms of the overall project itself, as you mentioned, it's been around for a number of years now. And I'm curious if you were to completely start the whole project over today, if there were any elements of it that you would reconsider or redesign given the current state of the art and the available libraries and ecosystem.
Cédric Krier
Indeed, it's a little bit difficult to answer because one thing we do with Triton is one we think sometimes there is something out that exists and it's better than some something we have done. We are not fear to, to trash what we have done in use the new stuff to We the project is evolved a lot in 10 years and we have increased it or you can use existing tools or framework that we found the time better than what we had. So at some point I would say if I were to start Triton now i guess i it will be as it is now, of course without all the the previous version, different tools that we were using back in back at that time, but at some way I have no idea. Maybe we will change something tomorrow because we have we found something better for specific need. But for now.
I don't care I've missing in mind
Nicolas Évrard
when we thought about this question. Today, we will add one stuff that we would probably not not include. It's the fact that you can have per process a connection to multiple databases currently. That's what that's what we do. Probably that's something that we would not do again,
Jonathan Levy
right? Again, am I right to understand that the doctor is the big changing technology there that when that was built, the idea was, well, you're gonna have one server running Triton and it may need to connect to a lot of things. Whereas now you can spin up multiple.
Now we
Cédric Krier
most of the deployment of Triton now are just to connect to one database because it's, it's much it's much cheaper to to start a new process and so this feature in Triton, indeed is mainly used by developers where the if one does that one Triton, and they switch from one database to another to test different case or scenario, but in production, it's not really used. And indeed, it adds some complexity in some part of Triton that couldn't be are removed and simplify that
Tobias Macey
And then as far as the sustainability of the project, we mentioned that there is the foundation that is there to serve as the governing agent and b2c K is at least one company that's involved in the continued development of it, but I'm curious how you're approaching just the overall day to day of being able to ensure that necessary work gets Done and that the project is evolving. And some of the approach that you use to ensure the ongoing stability and security of the project given the criticality of it to a number of people's businesses.
Nicolas Évrard
So far the project itself, the foundation rely on the fact that it will receive donations from people and hopefully we we are very lean, so we don't have a lot of costs. And with the few from the few donations that we have now, it It allows us to do two or servers, the trademarks that are paid and we have also some some money tools, organize some times, try to get earnings of developers or conferences. And for the project itself, as we are a free software project we, we really, really rely on the fact that People use or projects need to need it to, to exist for for their for their business. So b2c, for example, we have customers and they pay us to work on Triton. And there are other companies that that do that. So I'm in Spain, Argentina, Germany and so on France, of course, and thanks to them, we allowed to dedicate some time on the free software project. Although we are a small project, when you compare us to the Linux kernel or Firefox or I don't know, Django, we still can live and thanks to the dedication of some some developers that do the work on their free time and so on. Yeah, it's it's a bit tricky, but it works and economically, it works. Also, it We are not unique jobs but but it works
Cédric Krier
the main business
plan that
for the companies run Triton is to sell services on Triton so the service they provide often involve improving Triton itself. So this is the main way Triton evolve and keep up to date with regulation and so
those of points was about the
maintenance and security we have some process that allow us to ensure that we don't break too much Triton first is that we have Ratan a lot of test for every modules is a set of tests by default that I'm sure some integrity and quality in the in the Triton in the code the Python code and so on. But also we we write extended test for for many key modules like for controlling sales and so on. We have to kind of test is the first one is unit tests. So, we test usually methods in the class and we found values and so on. And we ever saw larger test which is more about integration tests where we restrict a full workflow in deputy in deputation When you work full workflow, it means that with scenarios that start create a set order validate the senator, validate the shipments or and push the invoice, check that the accounting is right, unsure for the shipment that backorder was created, and so on and so on. And we have a lot of scenarios like that. And indeed, each time we find a bug, we try to write a scenario that showed the issue or what tests that ensure that that the code is now tested for this kind of test, then with a continuous integration tool, that build and run the test on each commit, and so if one change mic. Shoot, it was the developer responsible for this break, and we try to fix it as soon as possible. And of course we don't release make a new release if there is an issue on one test. That's the we keep the state of Triton as it is now to stability. The second point about also it's that we review all the change. So we try to have at least one review for each commit. It's not always easy to get because it takes time and on such a open project. People don't always have the free time to make reviews. But we try to enforce that. And, of course, the view also unsure the the security of training Because we have more eyes looking at the code, and same as but weakness and issue.
And finally, for the particular idea of the security issue, we have a specific process to report security issue where they are only known by us a very small set of core developers, and they try to find the solution and provide the fix. And once we have a proper fix, we make a security release, which is coordinate with the package. The package. The packager have different distribution we have tried on these packages. And so we set up a release date for the security issue, which goes public only after this date. That's 2.4 security. And now for the people who are using Triton, the end users, they've the choice of to kind of freeze to us. We have a long term support release that we support for five years. So when you are this is the best choice if you don't want to upgrade frequently and if new features. This features this series receive bug fix and Security Police for five years. And otherwise, the normal DVDs are supported for one year. So we give the choice of four to the users to choose which kind of frequency you want to have to upgrade. And we try to make bug fix release every 15 days. If Of course there is bugs, too. And yeah, I didn't say that. But we make a release every six months. So measure a major release with new features, new modules and new client and so on.
Tobias Macey
And then as far as the usage of Triton, I'm sure that it's been used in a pretty wide array of businesses. And I'm curious what you have seen to be some of the most interesting or innovative or unexpected ways that it's been used and deployed.
Nicolas Évrard
One of the most interesting use, at least from my point of view, is the one that dress is doing of Triton. So good new ANSYS projects under the new umbrella. And they are the aim is to provide each
Cédric Krier
speaker an information system
Nicolas Évrard
Yes. Information System
Jonathan Levy
in Sorry, just to jump in because it was a little hard to hear. So what he's saying here is good new health guru house. Yes. Yeah. Can you health
Nicolas Évrard
class is a it's an in hospital Information System, which stores medical records of people, usually from low development, countries like Congo, Jamaica and so on. Because in countries like Europe or guy or I guess the United States you have a lot of red tapes and lows to follow. And it's really difficult. newars is not, does not its main point is to bring computer science and informatics to those countries and to help them to to have a good traceability of people. So they don't really care about all all the problem that we care about in our in our country, but ingredients they do, they care about stuff that are really vital. And so they have a lot of, of modules for obstetrics. And I don't know anything that goes with the medicine. And it's it's really a nice project. There's also the project of john, which is something that I didn't expect it.
Jonathan Levy
Sure, I'd be happy to describe our implementation. So we are a law firm that services the aviation industry. And the aviation industry is very heavily regulated and record intensive. And so we have a web portal side that is built, basically using flask actually using a slightly different project called near ID. And our clients use that to input all of their data through web forms, and it goes into our Triton database. And then we have also in terms of our internal workflow, a large number of discrete sort of small tasks that we need to do for each of these clients and so We have Triton handling our web front end and then also handling our flow of tasks and sort of assignments and delegations of tasks to people inside the company so that we can make sure that we've got a good audit trail and clarity that each and every item is getting done. That's how we use Triton.
Nicolas Évrard
This is far away from our usual cases, which are more web shops and sales related or purchase related implementation.
Cédric Krier
Indeed, we have a weather
project that was a little bit different that the usual it's it was for it's a project we develop it for a company where the main goal was to provide an application on the cell phones where people could buy Stuff like sandwich sandwiches from their local grocery and they could order it when they were at work in the morning, and schedule the time when they want the sandwich and so, the payment was corrected by the application and beyond the rest of Triton server receiving the orders and dispatch the orders to printers in the shop of different grocery everywhere in the city and so on. And so they received the the kit with a number and the orders and the prepare it for the time it was specified. And so the guy who agreed with this application can go to the shop and take directly back here with shop Cathy's shopping them and without having to pay because it was already paid by the electronic ID and so on. And so it was a way to, to skip the lane in such a shop where everybody goes at the same time, get his foot, Jackie. And so the the commission could organize the work prepare in advance the orders and so on. So that was a nice project where Triton was involved to follow the orders you received from the application dispatch to the right shop and make a small accounting about how much was said and done at the end. sent the money order it for four to each shop that Yeah, that was an astonishing way of using Triton And then
Tobias Macey
in terms of the future of the Triton project, I'm curious what you have in store in terms of new feature capabilities or future direction for the project.
Cédric Krier
The Trident project is no real roadmap because it's built by the community or the community. And so, each one come with his own needs and own targets and own goals and try to push the project. So this we cannot guide which direction we go or which we do we want to implement for the next release and so on because it depends on what the community will provide. That's the main feature.
Nicolas Évrard
Yes, but but, but of course, we we have some some ideas that are lingering, and that we would like to implement. So for example, we we are thinking a lot about Creating creating more specific applications. Right now we have an application named Kronos, which is a Bowser plugin, which allows you to input your timesheets, that's also the catch your own each because we use it to to invoice or customers a B to C k. And I guess we'll do people into the Triton community use it because we know a lot of people that work the same way as we do. But those applications they use specific pass in every modules. So if you want a module can open a path. An entry point is in the
in the D HTTP server,
Nicolas Évrard
which you can put or pull data from. And thanks to this entry point, you can enter directly into Triton we Of course, your credentials and so on, and F some specific actions. So for example, for the timesheets, you can fetch the timesheets of specific days. But you can also push a new, a new a new line in your timesheet and or, or you can edit existing right. And we would like to have more application like that, for example to do the shipping in the warehouses.
Cédric Krier
But yeah, it's dedicated application. So in some way, it's a way to I Triton behind very tailored
Jonathan Levy
user interface. I think that something big for the future of Triton is the LPS that long term support which was just added maybe about a year ago and as we've talked about, Triton has been around for round 10 years. And has had this philosophy of we are willing to break things to improve things. And so that Cedric was saying there's a new release every six months, traditionally, those releases had only received a year of support. And so there was some aspect of conveyor belt of needing to upgrade to the new versions. But now, we have gotten to where this core Triton functions, I think are pretty stable. I mean, so for example, Nicholas described earlier that it transitioned to the Active Record Model A few years ago, and that that was quite a bit of API changes, but I don't there haven't been any changes like that in since then are in quite a while and I think that Triton is now stable enough that as you can hear from what Cedric Nicholas are describing as new addition features like support for browser plugins. That's not going to be sort of breaking changes that would threaten existing installs. And so I think that a big driver of more people starting to use Triton is knowing that they have LTS that they have five years of support in the version that they install and greater stability to the API. And the the fact that the core devs have been willing to make such changes. It has gotten Triton to where it is now, which I think that there are very elegant idioms that it's using. It's a very nice system to code in. And now that that's not changing so much long term support is possible. And like I said, I think that that's going to be a big driver of more and more people using Triton
Cédric Krier
have fun that we are rocking is To include a webshop directly. So for now, there is many solution but except our solution to plug a webshop to Triton, we do ck if developed, it sounds bizarre or sweet as develop it webshop, extension and so on. And so now there is a walk going on to support view stuff hunt, which is a new web shop
for content that this is
Nicolas Évrard
confusing Yes.
Cédric Krier
So it's a an sp a single page application that support also the progressive application
Nicolas Évrard
pw a it's a web application
Cédric Krier
so it can work offline and so on. And so there is a material interview for now too. plugged Triton and view stock fund. And this could be also, once it's published and included a big change for Triton, because it will provide out of the box, a webshop to small business. And that can be very helpful for many companies. Yes, there's also the agronomy that
Nicolas Évrard
we would like to make better but
Cédric Krier
yes, we have to walk that we try to display the right data at the right time to the user. So it's a little bit mix of everything a dashboard, but tailor it for the type of user you are depending of your access and permissions and so on, but also to try to provide you the next task you should work on. So we have some groupings going in. connection. So probably in the next few years, we will have a better way of pushing the
Tobias Macey
right well, for anybody who wants to follow along with the work that you're doing or get involved, I'll have you each add your preferred contact information to the show notes. And so with that, I'll move us into the picnic and this week I'm going to choose audiobooks because I've been listening to the more with my kids as a way to keep them busy, and as a way to keep us all entertained. So definitely recommend finding some good audiobooks whether through your local library or through service such as audible and so with that I'll pass it to you Nicola, do you have any pics this week?
Nicolas Évrard
Yes, I did this everybody I tried to do have something to think that is a bit joyful. So I started to play civilization six. There's been years since I haven't been playing civilization in facts. In fact, my first contribution to open source was to free sieve the Free Software. clone of civilization, civilization. And now I started to play again to civilization six. So if you ever sometimes you can start to play civilization six or read a book, shall I read the next book from from another of China use Excel. It's the tree but the problem it's science fiction, but from the point of view of China, so it's a bit different than than usual. And I found that the, the liberty of speech of the author was quite surprising to me, because he described in the first chapters, the cultural evolution of China, and it was awful. But I was surprised to read that in a Chinese book, so if you if you like, science fiction, but with a twist, because it comes from another cultural background, I really, really commandlets
Tobias Macey
All right, and how about you, Cedric? Do you have any pics this week?
Cédric Krier
Indeed, is starting to read the integral of
manner to a locally it's a French comics from the 17th 17th. Yeah, it's a big influence and in science fiction culture, indeed, it seems that there is the influence to Star Wars movies and, and many other stuff. So, yeah, it's old comics, but I enjoy reading those.
Tobias Macey
And Jonathan, How about yourself?
Jonathan Levy
Well, my pick for this week, I think has to be hand sanitizer as we are all hunkered down with the corona virus and waiting to see what's going to happen the next few weeks. But now the thing I'll give a shout out to is not exactly picked but it is a new project or startup that I've been trying to get going for the last year and I think that we're set to launch. Hopefully in the next two months. It is royal comm royal spelled r o. l as in roiling River. And it is a better way to interact with RSS feeds a better way to enjoy content on the internet. So I've been working hard to get that going. And hopefully we're rounding the final turn and should have a public release in the next couple months. All right,
Tobias Macey
well, thank you all very much for taking the time today to join me and share your work and experience with Triton. It's definitely an interesting project and one that number of people obviously rely on so I appreciate all of your time and effort on that front and I hope you enjoy the rest of your
day. Thank you.
Thank you. Thank you. Thank you.
Tobias Macey
Thank you for listening. Don't forget to check out our other show the data engineering podcast at data engineering podcasts comm for the latest on modern data management. visit the site at Python podcasts calm to subscribe to the show, sign up for the mailing list and read the show notes. And if you've learned something or try it out a project from the show then tell us about it. Email hosts at podcasting a.com with your story. To help other people find the show, please leave a review on iTunes and tell your friends and co workers
Liked it? Take a second to support Podcast.__init__ on Patreon!