Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blog post for JuMP 1.0 release #71

Merged
merged 8 commits into from
Mar 24, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
386 changes: 386 additions & 0 deletions _posts/2022-02-28-jump-1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,386 @@
---
layout: post
title: "JuMP 1.0.0 is released"
date: 2022-02-28
categories: [releases]
permalink: /blog/1.0.0-release/
---

We are happy to announce the release of JuMP 1.0!

Nearly 10 years in the making, the release of JuMP 1.0 represents a major
milestone in the journey of JuMP. It also represents a stable platform from
which we can continue to build new and exciting features for a long time into
the future.

In this post we explain what "going 1.0" means for us now and what it will mean
for the future.

## Why 1.0 and how will future versions work?

For some readers, reaching "1.0.0" may signal that JuMP is only now at the point
where it is mature enough to use in production code. However, JuMP has been
mature for a long time, and is widely used in a range of production
applications.

Instead, our "1.0.0" release follows [Semantic Versioning](https://semver.org)
as a promise of future backwards compatibility.

In short, semantic versioned packages have a version comprised of three numbers:
MAJOR.MINOR.PATCH. Given a version number MAJOR.MINOR.PATCH:
* the MAJOR version is incremented for incompatible API changes,
* the MINOR version is incremented when new backwards compatibile functionality
is added
* the PATCH version is incremeneted for bug fixes.

By releasing JuMP 1.0.0, the core contributors are ensuring that all code you
write using JuMP 1.0.0 will continue to work in future 1.x.y releases.

JuMP follows the [ColPrac guide](http://colprac.sciml.ai/#guidance-on-package-releases)
for deciding how to version each release.

## JuMP and Julia compatibility

The latest release of JuMP will always support the long-term support and stable
[releases of Julia](https://julialang.org/blog/2019/08/release-process/#long_term_support).

When the long-term support release is changed, JuMP's minimum required version
of Julia will be udated and a new minor release will be tagged.

## A brief history of JuMP

* 09 Oct 2012 - First commit to JuMP.jl repo
* 15 Dec 2013 - JuMP 0.2.0 - First support for solver callbacks
* 02 May 2014 - JuMP 0.5.0 - First support for nonlinear optimization
* 16 Mar 2015 - First JuMP paper published: [Computing in Operations Research Using Julia](https://pubsonline.informs.org/doi/abs/10.1287/ijoc.2014.0623?journalCode=ijoc)
* 26 Jun 2015 - First [JuMP presentation in JuliaCon 2015](https://youtu.be/7LNeR299q88)
* 31 Aug 2015 - JuMP 0.10.0 - First support for semidefinite optimization
* 15 Dec 2016 - [INFORMS Computing Society (ICS) Prize](https://connect.informs.org/computing/awards/ics-prize) (290 stars)
* 05 May 2017 - Second JuMP paper published: [JuMP: A Modeling Language for Mathematical Optimization](https://epubs.siam.org/doi/abs/10.1137/15M1020575?journalCode=siread)
* 12 Jun 2017 - [First JuMP-dev workshop](/meetings/mit2017/) in Cambridge, USA
* 27 Jun 2018 - [Second JuMP-dev workshop](/meetings/bordeaux2018/) in Bordeaux, France
* 15 Feb 2019 - JuMP 0.19.0 - Migration from [MathProgBase](https://github.com/JuliaOpt/MathProgBase.jl) to [MathOptInterface](https://github.com/jump-dev/MathOptInterface.jl)
* 12 Mar 2019 - [Third JuMP-dev workshop](/meetings/santiago2019/) in Santiago, Chile
* 23 Jan 2020 - First 1000 stars in the JuMP.jl repository on GitHub
* 21 Oct 2020 - [Governance structure formalized](/pages/governance/)
* 22 Feb 2021 - [NumFOCUS signs agreement with MIT provide ongoing maintenance and support](/announcements/2021/02/22/agreement/)
* 21 Feb 2022 - [NumFOCUS signs agreement with LANL to improve nonlinear support](/announcements/2021/02/22/agreement/)
* 28 Feb 2022 - JuMP 1.0.0 is released

## Next steps

JuMP 1.0 is not an end goal. We have big plans for the future! To get involved:

* Read our [roadmap](https://jump.dev/JuMP.jl/stable/developers/roadmap/)
* Join the [community forum](https://discourse.julialang.org/c/domain/opt/13)
* Join the [developer chatroom](https://gitter.im/JuliaOpt/JuMP-dev)

## Thank you

A huge number of people have contributed to packages in the JuMP-dev GitHub
repository over the last 10 years. In order of the number of pull requests, we
thank:
* [@blegat](https://github.com/blegat)
* [@odow](https://github.com/odow)
* [@mlubin](https://github.com/mlubin)
* [@joehuchette](https://github.com/joehuchette)
* [@joaquimg](https://github.com/joaquimg)
* [@IainNZ](https://github.com/IainNZ)
* [@ericphanson](https://github.com/ericphanson)
* [@matbesancon](https://github.com/matbesancon)
* [@guilhermebodin](https://github.com/guilhermebodin)
* [@frapac](https://github.com/frapac)
* [@dourouc05](https://github.com/dourouc05)
* [@tkelman](https://github.com/tkelman)
* [@akshay326](https://github.com/akshay326)
* [@chriscoey](https://github.com/chriscoey)
* [@kalmarek](https://github.com/kalmarek)
* [@yeesian](https://github.com/yeesian)
* [@IssamT](https://github.com/IssamT)
* [@henriquebecker91](https://github.com/henriquebecker91)
* [@ararslan](https://github.com/ararslan)
* [@rdeits](https://github.com/rdeits)
* [@JackDunnNZ](https://github.com/JackDunnNZ)
* [@ccoffrin](https://github.com/ccoffrin)
* [@tkoolen](https://github.com/tkoolen)
* [@Ayush-iitkgp](https://github.com/Ayush-iitkgp)
* [@juan-pablo-vielma](https://github.com/juan-pablo-vielma)
* [@rschwarz](https://github.com/rschwarz)
* [@barpit20](https://github.com/barpit20)
* [@jd-lara](https://github.com/jd-lara)
* [@karanveerm](https://github.com/karanveerm)
* [@madeleineudell](https://github.com/madeleineudell)
* [@staticfloat](https://github.com/staticfloat)
* [@ExpandingMan](https://github.com/ExpandingMan)
* [@metab0t](https://github.com/metab0t)
* [@mtanneau](https://github.com/mtanneau)
* [@rafabench](https://github.com/rafabench)
* [@yashvardhan747](https://github.com/yashvardhan747)
* [@adamferreira](https://github.com/adamferreira)
* [@Peiffap](https://github.com/Peiffap)
* [@amontoison](https://github.com/amontoison)
* [@bodono](https://github.com/bodono)
* [@ndinsmore](https://github.com/ndinsmore)
* [@dpo](https://github.com/dpo)
* [@kdheepak](https://github.com/kdheepak)
* [@leotac](https://github.com/leotac)
* [@lkapelevich](https://github.com/lkapelevich)
* [@mohamed82008](https://github.com/mohamed82008)
* [@remi-garcia](https://github.com/remi-garcia)
* [@shadiakiki1986](https://github.com/shadiakiki1986)
* [@yuyichao](https://github.com/yuyichao)
* [@Wikunia](https://github.com/Wikunia)
* [@abelsiqueira](https://github.com/abelsiqueira)
* [@caioluke](https://github.com/caioluke)
* [@chkwon](https://github.com/chkwon)
* [@cossio](https://github.com/cossio)
* [@ranjanan](https://github.com/ranjanan)
* [@tweisser](https://github.com/tweisser)
* [@hellemo](https://github.com/hellemo)
* [@vfegger](https://github.com/vfegger)
* [@vitornesello](https://github.com/vitornesello)
* [@AtsushiSakai](https://github.com/AtsushiSakai)
* [@GunnarFarneback](https://github.com/GunnarFarneback)
* [@KristofferC](https://github.com/KristofferC)
* [@abhijithch](https://github.com/abhijithch)
* [@carlobaldassi](https://github.com/carlobaldassi)
* [@emreyamangil](https://github.com/emreyamangil)
* [@mforets](https://github.com/mforets)
* [@pitmonticone](https://github.com/pitmonticone)
* [@pulsipher](https://github.com/pulsipher)
* [@r-barnes](https://github.com/r-barnes)
* [@rtwalker](https://github.com/rtwalker)
* [@tomasfmg](https://github.com/tomasfmg)
* [@EdvinAblad](https://github.com/EdvinAblad)
* [@PaulSoderlind](https://github.com/PaulSoderlind)
* [@anriseth](https://github.com/anriseth)
* [@chengg04](https://github.com/chengg04)
* [@coroa](https://github.com/coroa)
* [@freemin7](https://github.com/freemin7)
* [@iamed2](https://github.com/iamed2)
* [@jd-foster](https://github.com/jd-foster)
* [@jlepird](https://github.com/jlepird)
* [@kibaekkim](https://github.com/kibaekkim)
* [@madanim](https://github.com/madanim)
* [@migarstka](https://github.com/migarstka)
* [@timholy](https://github.com/timholy)
* [@JinraeKim](https://github.com/JinraeKim)
* [@Thuener](https://github.com/Thuener)
* [@bhalonen](https://github.com/bhalonen)
* [@bmetherall](https://github.com/bmetherall)
* [@brilhana](https://github.com/brilhana)
* [@cdeil](https://github.com/cdeil)
* [@davidanthoff](https://github.com/davidanthoff)
* [@dstahlke](https://github.com/dstahlke)
* [@edljk](https://github.com/edljk)
* [@fa-bien](https://github.com/fa-bien)
* [@ferrolho](https://github.com/ferrolho)
* [@jcheyns](https://github.com/jcheyns)
* [@jrevels](https://github.com/jrevels)
* [@martinbiel](https://github.com/martinbiel)
* [@mewilhel](https://github.com/mewilhel)
* [@mfalt](https://github.com/mfalt)
* [@nan2ge1](https://github.com/nan2ge1)
* [@omus](https://github.com/omus)
* [@philipithomas](https://github.com/philipithomas)
* [@ulfworsoe](https://github.com/ulfworsoe)
* [@Crghilardi](https://github.com/Crghilardi)
* [@EQt](https://github.com/EQt)
* [@GillesBareilles](https://github.com/GillesBareilles)
* [@GregPlowman](https://github.com/GregPlowman)
* [@Kelvyn88](https://github.com/Kelvyn88)
* [@MatthewStuber](https://github.com/MatthewStuber)
* [@Ochibobo](https://github.com/Ochibobo)
* [@Shuvomoy](https://github.com/Shuvomoy)
* [@ViralBShah](https://github.com/ViralBShah)
* [@alessandroSSJ](https://github.com/alessandroSSJ)
* [@andrewrosemberg](https://github.com/andrewrosemberg)
* [@antonhinneck](https://github.com/antonhinneck)
* [@arnavs](https://github.com/arnavs)
* [@colinfang](https://github.com/colinfang)
* [@cormullion](https://github.com/cormullion)
* [@daschw](https://github.com/daschw)
* [@daviddelaat](https://github.com/daviddelaat)
* [@davidlizeng](https://github.com/davidlizeng)
* [@egbuck](https://github.com/egbuck)
* [@englhardt](https://github.com/englhardt)
* [@gdowdy3](https://github.com/gdowdy3)
* [@gragusa](https://github.com/gragusa)
* [@gsoleilhac](https://github.com/gsoleilhac)
* [@guberger](https://github.com/guberger)
* [@guimarqu](https://github.com/guimarqu)
* [@hdavid16](https://github.com/hdavid16)
* [@huckl3b3rry87](https://github.com/huckl3b3rry87)
* [@ianfiske](https://github.com/ianfiske)
* [@iaravena](https://github.com/iaravena)
* [@jac0320](https://github.com/jac0320)
* [@jmpohl](https://github.com/jmpohl)
* [@joeltay](https://github.com/joeltay)
* [@ketitalabs](https://github.com/ketitalabs)
* [@kreibaum](https://github.com/kreibaum)
* [@marcusps](https://github.com/marcusps)
* [@mthelm85](https://github.com/mthelm85)
* [@peterwittek](https://github.com/peterwittek)
* [@ranocha](https://github.com/ranocha)
* [@raphaelsaavedra](https://github.com/raphaelsaavedra)
* [@riccardomurri](https://github.com/riccardomurri)
* [@rofinn](https://github.com/rofinn)
* [@shoibalc](https://github.com/shoibalc)
* [@sivapvarma](https://github.com/sivapvarma)
* [@sshin23](https://github.com/sshin23)
* [@tasseff](https://github.com/tasseff)
* [@tummykung](https://github.com/tummykung)
* [@vernwalrahul](https://github.com/vernwalrahul)
* [@votroto](https://github.com/votroto)
* [@vrngupta53](https://github.com/vrngupta53)
* [@vtjeng](https://github.com/vtjeng)
* [@zlatanvasovic](https://github.com/zlatanvasovic)
* [@AaronMoat](https://github.com/AaronMoat)
* [@BenChung](https://github.com/BenChung)
* [@Carl-Ning-Yan](https://github.com/Carl-Ning-Yan)
* [@CarloLucibello](https://github.com/CarloLucibello)
* [@ChrisRackauckas](https://github.com/ChrisRackauckas)
* [@DilumAluthge](https://github.com/DilumAluthge)
* [@Dr-G](https://github.com/Dr-G)
* [@DrChainsaw](https://github.com/DrChainsaw)
* [@Dx-Wang](https://github.com/Dx-Wang)
* [@Gbrunieau](https://github.com/Gbrunieau)
* [@JiazhengZhu](https://github.com/JiazhengZhu)
* [@Ken-B](https://github.com/Ken-B)
* [@Laurae2](https://github.com/Laurae2)
* [@LefterisM](https://github.com/LefterisM)
* [@MarcMush](https://github.com/MarcMush)
* [@MartinBonde](https://github.com/MartinBonde)
* [@MassimoDeMauri](https://github.com/MassimoDeMauri)
* [@MaximilianJHuber](https://github.com/MaximilianJHuber)
* [@MichaelHatherly](https://github.com/MichaelHatherly)
* [@NLaws](https://github.com/NLaws)
* [@Non-Contradiction](https://github.com/Non-Contradiction)
* [@Ontahm](https://github.com/Ontahm)
* [@Pramodh-G](https://github.com/Pramodh-G)
* [@StefanKarpinski](https://github.com/StefanKarpinski)
* [@Vgrunert](https://github.com/Vgrunert)
* [@Wimmerer](https://github.com/Wimmerer)
* [@a-torgovitsky](https://github.com/a-torgovitsky)
* [@adelarue](https://github.com/adelarue)
* [@ahwillia](https://github.com/ahwillia)
* [@alyst](https://github.com/alyst)
* [@amburosesekar](https://github.com/amburosesekar)
* [@amilajack](https://github.com/amilajack)
* [@andrioni](https://github.com/andrioni)
* [@aritrasep](https://github.com/aritrasep)
* [@aspicer](https://github.com/aspicer)
* [@baggepinnen](https://github.com/baggepinnen)
* [@bkamins](https://github.com/bkamins)
* [@blakejohnson](https://github.com/blakejohnson)
* [@brozjak2](https://github.com/brozjak2)
* [@c-jg](https://github.com/c-jg)
* [@cmaes](https://github.com/cmaes)
* [@colbec](https://github.com/colbec)
* [@coreysharris](https://github.com/coreysharris)
* [@czlee](https://github.com/czlee)
* [@dafrick](https://github.com/dafrick)
* [@danielschermer](https://github.com/danielschermer)
* [@danspielman](https://github.com/danspielman)
* [@deltova](https://github.com/deltova)
* [@djunglas](https://github.com/djunglas)
* [@doorisajar](https://github.com/doorisajar)
* [@dressel](https://github.com/dressel)
* [@dschein](https://github.com/dschein)
* [@fingolfin](https://github.com/fingolfin)
* [@frederikgeth](https://github.com/frederikgeth)
* [@freeboson](https://github.com/freeboson)
* [@galabovaa](https://github.com/galabovaa)
* [@gitter-badger](https://github.com/gitter-badger)
* [@gliuzzi](https://github.com/gliuzzi)
* [@gnadt](https://github.com/gnadt)
* [@goretkin](https://github.com/goretkin)
* [@gpinu1](https://github.com/gpinu1)
* [@haoxiangyang89](https://github.com/haoxiangyang89)
* [@harshangrjn](https://github.com/harshangrjn)
* [@hsnamkoong](https://github.com/hsnamkoong)
* [@hurak](https://github.com/hurak)
* [@ignace-computing](https://github.com/ignace-computing)
* [@igormcoelho](https://github.com/igormcoelho)
* [@ilancoulon](https://github.com/ilancoulon)
* [@innerlee](https://github.com/innerlee)
* [@jayvn](https://github.com/jayvn)
* [@jeanpauphilet](https://github.com/jeanpauphilet)
* [@jgoldfar](https://github.com/jgoldfar)
* [@jiahao](https://github.com/jiahao)
* [@jiweiqi](https://github.com/jiweiqi)
* [@jlwether](https://github.com/jlwether)
* [@joerenes](https://github.com/joerenes)
* [@johnzigla](https://github.com/johnzigla)
* [@jonas-schulze](https://github.com/jonas-schulze)
* [@jonmgonzales](https://github.com/jonmgonzales)
* [@joseortiz3](https://github.com/joseortiz3)
* [@joshualeond](https://github.com/joshualeond)
* [@junglegobs](https://github.com/junglegobs)
* [@jw3126](https://github.com/jw3126)
* [@jwscook](https://github.com/jwscook)
* [@jwveysey](https://github.com/jwveysey)
* [@jz2903](https://github.com/jz2903)
* [@kaarthiksundar](https://github.com/kaarthiksundar)
* [@kiwisensei](https://github.com/kiwisensei)
* [@kmsquire](https://github.com/kmsquire)
* [@ko56](https://github.com/ko56)
* [@kofron](https://github.com/kofron)
* [@larssp](https://github.com/larssp)
* [@laurentbartholdi](https://github.com/laurentbartholdi)
* [@laurentheirendt](https://github.com/laurentheirendt)
* [@leclere](https://github.com/leclere)
* [@lluang](https://github.com/lluang)
* [@loicvh](https://github.com/loicvh)
* [@lrnv](https://github.com/lrnv)
* [@malagbek](https://github.com/malagbek)
* [@martincornejo](https://github.com/martincornejo)
* [@mattmilten](https://github.com/mattmilten)
* [@melonedo](https://github.com/melonedo)
* [@mikerouleau](https://github.com/mikerouleau)
* [@mikolajpp](https://github.com/mikolajpp)
* [@mlhetland](https://github.com/mlhetland)
* [@moehle](https://github.com/moehle)
* [@molet](https://github.com/molet)
* [@mstriebs](https://github.com/mstriebs)
* [@niklasschmitz](https://github.com/niklasschmitz)
* [@nkottary](https://github.com/nkottary)
* [@nodet](https://github.com/nodet)
* [@noilreed](https://github.com/noilreed)
* [@numbermaniac](https://github.com/numbermaniac)
* [@omalled](https://github.com/omalled)
* [@oxinabox](https://github.com/oxinabox)
* [@petershintech](https://github.com/petershintech)
* [@pkofod](https://github.com/pkofod)
* [@qlete](https://github.com/qlete)
* [@ramcha24](https://github.com/ramcha24)
* [@raphasampaio](https://github.com/raphasampaio)
* [@renkekuhlmann](https://github.com/renkekuhlmann)
* [@rocarvaj](https://github.com/rocarvaj)
* [@rohit-mp](https://github.com/rohit-mp)
* [@ryancorywright](https://github.com/ryancorywright)
* [@salazarzen](https://github.com/salazarzen)
* [@schillic](https://github.com/schillic)
* [@sean-lo](https://github.com/sean-lo)
* [@seanemoon](https://github.com/seanemoon)
* [@sebastianangerhausen](https://github.com/sebastianangerhausen)
* [@simonbowly](https://github.com/simonbowly)
* [@snitramodranoel](https://github.com/snitramodranoel)
* [@sourabhdalvi](https://github.com/sourabhdalvi)
* [@spockoyno](https://github.com/spockoyno)
* [@stared](https://github.com/stared)
* [@stefanobenati](https://github.com/stefanobenati)
* [@stephentu](https://github.com/stephentu)
* [@sylvainmouret](https://github.com/sylvainmouret)
* [@tamas-borbath](https://github.com/tamas-borbath)
* [@tcveatch](https://github.com/tcveatch)
* [@thomasschiet](https://github.com/thomasschiet)
* [@tmigot](https://github.com/tmigot)
* [@tomerarnon](https://github.com/tomerarnon)
* [@trigaut](https://github.com/trigaut)
* [@ven-k](https://github.com/ven-k)
* [@viniciusmotta4](https://github.com/viniciusmotta4)
* [@waldyrious](https://github.com/waldyrious)
* [@willtebbutt](https://github.com/willtebbutt)
* [@xhub](https://github.com/xhub)
* [@yvesx](https://github.com/yvesx)