SlideShare a Scribd company logo
Releasing with
Gradle
snippets,puzzles,(best)practices
René Gröschke
Principal Engineer, Gradleware
Gradle Exchange 2014
Motivation
#gradlesummit 3/27
When doing a Release
#gradlesummit
update your project version
deal with your vcs (tagging, branching)
publish/deploy the released distribution
interact with your issue tracker
double check your dependencies
rollback if build failed
...
·
·
·
·
·
·
·
4/27
releasing manually?
#gradlesummit 5/27

#gradlesummit 6/27
demo app
#gradlesummit 7/27
project versioning
declaring a project version
#gradlesummit
// not optimal
version = "1.1-SNAPSHOT"
// better
version = file("version.txt").text
...
BUILD.GRADLE
8/27
project versioning (2)
put some semantics in your project version!
#gradlesummit
version = MyVersion.load(file("version.properties"))
class MyVersion {
int major, minor, bugfix, build
String toString(){
"${major}.${minor}.${bugfix}.${build}"
}
...
}
BUILD.GRADLE
9/27
puzzle #1a (major|minor|bugfix) release
#gradlesummit 10/27
source versioning
interacting with your vcs (option 1)
#gradlesummit
buildscript {
repositories { jcenter() }
dependencies { classpath 'org.ajoberstar:gradle-git:0.8.0' }
}
import org.ajoberstar.grgit.*
ext.repo = Grgit.open(file('.'))
task tagRelease << {
repo.tag.add {
name = version
message = "Release of ${version}"
}
}
BUILD.GRADLE
11/27
source versioning (2)
interacting with your vcs (option 2)
#gradlesummit
task tagGitWorkspace(type:Exec){
commandLine 'git', 'tag', project.version.toString()
}
BUILD.GRADLE
12/27
source versioning (3)
sidenote: reading branch/commit via file io
#gradlesummit
def branch = file(".git/HEAD").text - "ref: refs/heads/"
def commitId = file(".git/refs/heads/$branch").text
BUILD.GRADLE
13/27
puzzle #2a clean working copy
#gradlesummit 14/27
connect your issue tracker
worth the effort
#gradlesummit
keep version stati in sync
document tackled issues
check project status
...
·
·
·
·
15/27
#gradlesummit 16/27
connect your issue tracker (2)
getting started
#gradlesummit
explore the api of your tool of choice!
jira, youtrack, trello, github
REST is your friend
REST is easy with gradle & groovy
...
·
·
·
·
·
17/27
#gradlesummit
"but we have a custom tool!?"
GET RID OF IT!
18/27
puzzle #3connect your issue tracker
#gradlesummit 19/27
publishing
depends on your product
#gradlesummit
maven repository, bintray, maven-central out of the box
s3, ftp, ssh via custom gradle tasks
feed proprietary tools (e.g. liverebel)
...
·
·
·
·
20/27
when something went wrong...
option 1
#gradlesummit 21/27
when something went wrong...
option 2: react on your build result
#gradlesummit
...
gradle.addBuildListener(new BuildAdapter(){
void buildFinished(def result){
result.failure ? gitReset() : gitPush()
}
})
...
BUILD.GRADLE
22/27
links and pointers
#gradlesummit
gradle.org
gradleware.com
semantic version library
Gradle-Git Plugin (more than just a git plugin)
Gradle SVN Kit plugin
liverebel
my demo app
·
·
·
·
·
·
·
23/27
Q&A
#gradlesummit 24/27
Thanks for listening!
twitter @breskeby
www www.gradleware.com
github github.com/breskeby
references
#gradlesummit
http://devopsreactions.tumblr.com/post/70883605526/final-straight-on-a-
project
http://www.youtube.com/watch?v=UyLUCnTdu7o
http://devopsreactions.tumblr.com/post/49078186169/go-live-day
·
·
·
26/27
Releasing with gradle (gradle summit 2014)

More Related Content

Viewers also liked

Release It!
Release It!Release It!
Release It!
Evgeny Goldin
 
resume
resumeresume
resume
Levi Weiss
 
Kenneth Smith Resume 2015
Kenneth Smith Resume 2015Kenneth Smith Resume 2015
Kenneth Smith Resume 2015
Kenneth Smith
 
[52nd KUG PP] Intro KUG
[52nd KUG PP] Intro KUG[52nd KUG PP] Intro KUG
[52nd KUG PP] Intro KUG
Keynote User Group
 
Five Type of Learners
Five Type of LearnersFive Type of Learners
Five Type of Learners
Govig and Associates
 
7maravillas
7maravillas7maravillas
7maravillas
proyectospgarciam
 
A s oct 2013 full web
A s oct 2013 full webA s oct 2013 full web
A s oct 2013 full web
Madhavbaug
 
Five Easy Casserole Recipes
Five Easy Casserole RecipesFive Easy Casserole Recipes
Five Easy Casserole Recipes
Maid Pro Tulsa, OK
 
Edutech2015v2 150705224119-lva1-app6891
Edutech2015v2 150705224119-lva1-app6891Edutech2015v2 150705224119-lva1-app6891
Edutech2015v2 150705224119-lva1-app6891
Vera Kovaleva
 
Aportes al reglamento de propaganda electoral, publicidad estatal y neutralidad
Aportes al reglamento de propaganda electoral, publicidad estatal y neutralidadAportes al reglamento de propaganda electoral, publicidad estatal y neutralidad
Aportes al reglamento de propaganda electoral, publicidad estatal y neutralidad
Asociación Civil Transparencia
 
Guidelines for Working Smarter, Not Harder
Guidelines for Working Smarter, Not HarderGuidelines for Working Smarter, Not Harder
Guidelines for Working Smarter, Not Harder
Adam Sicinski
 
Proyecto 4-katherine-piraban
Proyecto 4-katherine-pirabanProyecto 4-katherine-piraban
Proyecto 4-katherine-piraban
Katherine Alejandra Piraban Ramírez
 
شيت دمحمددسوقى
شيت دمحمددسوقىشيت دمحمددسوقى
شيت دمحمددسوقى
abdoo2020
 
Proyecto Palisade - Wilson López
Proyecto Palisade - Wilson LópezProyecto Palisade - Wilson López
Proyecto Palisade - Wilson López
Andrés López
 
Cubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja Descontado
Cubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja DescontadoCubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja Descontado
Cubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja Descontado
Omar Castellanos R.
 
Publicidad estatal
Publicidad estatalPublicidad estatal
i.materialise
i.materialisei.materialise
i.materialise
i.materialise
 
Presentacion mercado de derivados
Presentacion mercado de derivadosPresentacion mercado de derivados
Presentacion mercado de derivados
Katherine Alejandra Piraban Ramírez
 
Resume 2.29.16
Resume 2.29.16Resume 2.29.16
Resume 2.29.16
Matthew Pizzullo
 
The Public Opinion Landscape: Election 2016
The Public Opinion Landscape: Election 2016The Public Opinion Landscape: Election 2016
The Public Opinion Landscape: Election 2016
GloverParkGroup
 

Viewers also liked (20)

Release It!
Release It!Release It!
Release It!
 
resume
resumeresume
resume
 
Kenneth Smith Resume 2015
Kenneth Smith Resume 2015Kenneth Smith Resume 2015
Kenneth Smith Resume 2015
 
[52nd KUG PP] Intro KUG
[52nd KUG PP] Intro KUG[52nd KUG PP] Intro KUG
[52nd KUG PP] Intro KUG
 
Five Type of Learners
Five Type of LearnersFive Type of Learners
Five Type of Learners
 
7maravillas
7maravillas7maravillas
7maravillas
 
A s oct 2013 full web
A s oct 2013 full webA s oct 2013 full web
A s oct 2013 full web
 
Five Easy Casserole Recipes
Five Easy Casserole RecipesFive Easy Casserole Recipes
Five Easy Casserole Recipes
 
Edutech2015v2 150705224119-lva1-app6891
Edutech2015v2 150705224119-lva1-app6891Edutech2015v2 150705224119-lva1-app6891
Edutech2015v2 150705224119-lva1-app6891
 
Aportes al reglamento de propaganda electoral, publicidad estatal y neutralidad
Aportes al reglamento de propaganda electoral, publicidad estatal y neutralidadAportes al reglamento de propaganda electoral, publicidad estatal y neutralidad
Aportes al reglamento de propaganda electoral, publicidad estatal y neutralidad
 
Guidelines for Working Smarter, Not Harder
Guidelines for Working Smarter, Not HarderGuidelines for Working Smarter, Not Harder
Guidelines for Working Smarter, Not Harder
 
Proyecto 4-katherine-piraban
Proyecto 4-katherine-pirabanProyecto 4-katherine-piraban
Proyecto 4-katherine-piraban
 
شيت دمحمددسوقى
شيت دمحمددسوقىشيت دمحمددسوقى
شيت دمحمددسوقى
 
Proyecto Palisade - Wilson López
Proyecto Palisade - Wilson LópezProyecto Palisade - Wilson López
Proyecto Palisade - Wilson López
 
Cubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja Descontado
Cubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja DescontadoCubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja Descontado
Cubrir Riesgo Cambiario de ABC y Evaluar Flujo de Caja Descontado
 
Publicidad estatal
Publicidad estatalPublicidad estatal
Publicidad estatal
 
i.materialise
i.materialisei.materialise
i.materialise
 
Presentacion mercado de derivados
Presentacion mercado de derivadosPresentacion mercado de derivados
Presentacion mercado de derivados
 
Resume 2.29.16
Resume 2.29.16Resume 2.29.16
Resume 2.29.16
 
The Public Opinion Landscape: Election 2016
The Public Opinion Landscape: Election 2016The Public Opinion Landscape: Election 2016
The Public Opinion Landscape: Election 2016
 

Similar to Releasing with gradle (gradle summit 2014)

Idiomatic Gradle Plugin Writing - GradleSummit 2016
Idiomatic Gradle Plugin Writing - GradleSummit 2016Idiomatic Gradle Plugin Writing - GradleSummit 2016
Idiomatic Gradle Plugin Writing - GradleSummit 2016
Schalk Cronjé
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
CodeFest
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
sam chiu
 
Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
Peter Ledbrook
 
Hands on the Gradle
Hands on the GradleHands on the Gradle
Hands on the Gradle
Matthias Käppler
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
JacobAae
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
Sejong Park
 
Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleLightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle
QAware GmbH
 
Lightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-codeLightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-code
Mario-Leander Reimer
 
Enter the gradle
Enter the gradleEnter the gradle
Enter the gradle
Parameswari Ettiappan
 
Getting started with building your own standalone Gradle plugin
Getting started with building your own standalone Gradle pluginGetting started with building your own standalone Gradle plugin
Getting started with building your own standalone Gradle plugin
tobiaspreuss
 
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental pluginMastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Xavier Hallade
 
Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017
Andres Almiray
 
Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017
Andres Almiray
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
Nicola Baldi
 
#BABBQAmsterdam The other Android getting started guide: Gradle power
#BABBQAmsterdam The other Android getting started guide: Gradle power#BABBQAmsterdam The other Android getting started guide: Gradle power
#BABBQAmsterdam The other Android getting started guide: Gradle power
Javier de Pedro López
 
Code generation
Code generationCode generation
Code generation
Rafael Chaves
 
Szczepan.faber.gradle
Szczepan.faber.gradleSzczepan.faber.gradle
Szczepan.faber.gradle
magda3695
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature plugins
GR8Conf
 
Arquitectura MVVM para la construcción de aplicaciones Windows Store
Arquitectura MVVM para la construcción de aplicaciones Windows StoreArquitectura MVVM para la construcción de aplicaciones Windows Store
Arquitectura MVVM para la construcción de aplicaciones Windows Store
Damian Schenkelman
 

Similar to Releasing with gradle (gradle summit 2014) (20)

Idiomatic Gradle Plugin Writing - GradleSummit 2016
Idiomatic Gradle Plugin Writing - GradleSummit 2016Idiomatic Gradle Plugin Writing - GradleSummit 2016
Idiomatic Gradle Plugin Writing - GradleSummit 2016
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
Hands on the Gradle
Hands on the GradleHands on the Gradle
Hands on the Gradle
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
 
Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleLightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle
 
Lightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-codeLightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-code
 
Enter the gradle
Enter the gradleEnter the gradle
Enter the gradle
 
Getting started with building your own standalone Gradle plugin
Getting started with building your own standalone Gradle pluginGetting started with building your own standalone Gradle plugin
Getting started with building your own standalone Gradle plugin
 
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental pluginMastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
 
Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017
 
Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
#BABBQAmsterdam The other Android getting started guide: Gradle power
#BABBQAmsterdam The other Android getting started guide: Gradle power#BABBQAmsterdam The other Android getting started guide: Gradle power
#BABBQAmsterdam The other Android getting started guide: Gradle power
 
Code generation
Code generationCode generation
Code generation
 
Szczepan.faber.gradle
Szczepan.faber.gradleSzczepan.faber.gradle
Szczepan.faber.gradle
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature plugins
 
Arquitectura MVVM para la construcción de aplicaciones Windows Store
Arquitectura MVVM para la construcción de aplicaciones Windows StoreArquitectura MVVM para la construcción de aplicaciones Windows Store
Arquitectura MVVM para la construcción de aplicaciones Windows Store
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 

Releasing with gradle (gradle summit 2014)