What is TEQnation?
The new and improved edition of TEQnation is approaching fast! This year fully online.
3 days of developer mayhem! Every day between 16:00 and 19:00 we will deliver quality content.
At TEQnation you can broaden your knowledge at our hands-on labs, technical sessions, live demonstrations and workshops,
which are all focused on technology of the next era.
TEQnation 2021 will bring more than 1.000 developers and the best speakers from all over the world.
AI & ML, IoT & Embedded, Developer Experience, Modern Infrastructure, Security and New & Cool.
Share your passion with like-minded people, improve your skills and have fun in an easy-going atmosphere at TEQnation.
iText Session: Speaking in different tongues: Stabilizing and synchronizing our Java and .NET codebase
We had a dream. To have continuously releasable code, and to provide functionality in more than one language without too much effort.
But in the past (like many before us), we didn’t always succeed. Our Open Source codebase is available on two platforms, Java & .NET and it wasn’t an easy task to keep them always in sync and buildable. In the old days we did this manually, risking broken develop branches in both codebases and this meant getting a .NET release out could take a month (or more). There had to be a better way…
In this talk we’ll share how we overcame these hurdles; and how we transitioned from a manually tested and ported codebase to an automated system, where develop is always green!
Our automated system is not final yet. It’s continuously being improved, and we still have many ideas… We’ll share some of these such as the introduction of build agents in the cloud. This would enable us to run tests on different platforms and configurations almost effortlessly.
Guided by a timeline, we’ll go through step by step how we achieved this by introducing different tooling, some in-house and some external. The main part of our talk will be about our Merge Pipeline (trademark pending) based on Jenkins, which forms the backbone of our fully-fledged automated system.
We’ll share its internal details and explain how it handles the different steps that are needed to get a Java branch merged, and automatically ported into the Java and .NET develop branches.
It’s designed in such a way that as little as possible time is wasted by running steps in parallel, keeping track of what was, or was not run already. Code that does not pass Sonar will not make it into develop. Functional tests are in a separate repository but go together with the code they are testing.
We firmly believe that others would benefit from learning the steps we took along the way, and how simple tooling can be used to introduce a merge pipeline to help the development process at any company.
With interests including Open Source software and licenses, Michaël has been a developer at iText Software since 2011. After almost a decade of working closely with PDF, he has a keen insight into its uses in the real world. When he's not looking at PDF syntax, he likes to play music and (tries to) develop games.
TEQnation Program commission about the iText Session
Interesting use case and story for a large audience, even nowadays that DevOps is well-known, because it focuses on the 'ugly part' of adapting legacy systems (instead of selling out-of-the-box DevOps practices/tools). Calmed speaker, with great domain knowledge.
- TEQnation Program commission