Scala Talks: Joyful & secure publishing to Maven Central! & Optics using Monocle


Details
🎉 Come along to the London Scala Talks! 🎉
In this event you'll hear from Roberto Tyley and Gabriel Asman.
Agenda
6:00pm - 🥤 Doors open. Come along and grab a drink!
6:40pm - 🗣️ Gabriel Asman: Optics in Scala using Monocle
7:20pm - 🍕 Intermission: Join us for some free food and drinks! Vegan, vegetarian and gluten-free options are provided. Let us know if you'd like something special - we'd be happy to accommodate.
7:50pm - 🗣️ Roberto Tyley: Joyful & secure publishing to Maven Central!
8:30pm - 🥤 Socialising: Grab a drink and let's discuss the talks.
9:00pm - 🍻 Join us in the Mulbery Bush pub to discuss the talks!
This event is in person only.
🗣️ Gabriel Asman: Optics in Scala using Monocle
Immutable data structures are the bread and butter of programming in Functional languages. But updating deeply nested structures can be a pain - and that's before considering Sum types or collections. That's where Optics come in. I'll present how the Monocle library achieves this in Scala, starting with the simple but effective to the arguably unnecessary.
⭐ Speaker ⭐
Gabriel is a lead engineer for Quantexa, having joined the company almost 2 years ago, where he has worked main on dynamic configuration and the explorer module. He has 10 years of experience in Scala.
🗣️ Roberto Tyley: Joyful & secure publishing to Maven Central!
The Guardian is a hefty open-source contributor, publishing over 40 open-source Scala libraries to Maven Central - some specific to us (like our content-api-scala-client), and others more generally applicable, like play-googleauth or etag-caching. Teams responsible for those libraries need to be able to publish updates at will, but that can be both difficult and dangerous:
- **Difficult**, because every new developer on a team needs release credentials, and those credentials are laborious to set up and manage per developer. Shared-credentials and CI-release can help fix that - but how can we keep those release credentials **secure**, when they’re used by so many projects, with so many third-party dependencies?
- **Dangerous**, because seemingly minor library updates can be startlingly binary incompatible, and humans are just terrible at seeing that coming. Subtle binary incompatibility can sneak past pre-production unit & integration testing, only to completely crash production systems in unpredictable circumstances. There’s no point in releasing new library versions if we’re too scared to update to them! How can we make that safe?
This talk will show how the Guardian’s new GitHub Action release workflow makes the difficult easy, and the dangerous safe. I’ll explain why a single JVM process shouldn’t be responsible for an entire release! We’ll talk about how reducing config - that is, the amount of config per repository - sells the work of adoption, and how we can capitalise on a whole shopping list of improvements (coming from sbt’s versionScheme, sbt-version-policy, and more) whose benefit–cost ratios greatly improve when you’re applying them collectively at the level of your organisation, rather than one repository at time.
gha-scala-library-release-workflow is a reusable GitHub workflow, meaning it can be used by other GitHub organisations - it’s already being used by Scanamo - so if you’re publishing to Maven Central, there’s a good chance it can help you too!
⭐ Speaker ⭐
Roberto Tyley is Principal Engineer at the Guardian, creator of the BFG Repo-Cleaner, the CI/CD tool Prout, and many more open-source Java/Scala projects!He also loves karaoke, anyone up for karaoke afterwards?
❓ How do I get to the talks?
1. The nearest tube station is Waterloo.
2. Look for the WeWork building on York Road.
3. Sign in: the registration desk are expecting you! If you've been emailed a QR code from WeWork, you can use that to sign in directly. If not, go to the iPads and sign in manually.
4. Wait on the ground floor. The Quantexa team will escort you up to the office.
5. Grab a name tag and enjoy a drink!
Reach out here or on Discord if you need help.
————————————————————
🗣️ Would you like to present, but are not sure how to start? Give a talk with us and you'll receive mentorship from a trained toastmaster! Get in touch through this form and we'll get you started
🏡 Interested in hosting or supporting us? Please get in touch through this form and we can discuss how you can get involved.
📜 All London Scala User Group events operate under the Scala Community Code of Conduct:
https://www.scala-lang.org/conduct/
We encourage each of you to report the breach of the conduct, either anonymously through this form or by contacting one of our team members. We guarantee privacy and confidentiality, as well as that we will take your report seriously and react quickly.

Scala Talks: Joyful & secure publishing to Maven Central! & Optics using Monocle