OSS en Entreprise, Koson bien !

Qui je suis ?

lectra
lectra versalis

Comment faire de l’Open Source ?

En entreprise

  • Culture

  • Convaincre

Open Source ?

  • C’est gratuit…​

    • "Free as in free speech, not free beer" R. Stallman

  • Pas -ou peu- de support

  • Pas sécurisé

Gratuit ?

  • Retombées & services dérivés

enquetePAC2017

Contributeurs/Salariés

1.  Mozilla             39.90%  (1 000+)
2.  Pivotal             18.27%  (3 000)
3.  SUSE                17.64%  (1 500)
4.  Red Hat             12.68%  (13 400)
5.  Unity Technologies  12.90%  (2 000+)
6.  Square              11.25%  (3 400)
7.  Thoughtworks         8.28%  (6 000+)
8.  Shopify              7.67%  (4 000+)
9.  ESRI                 6.87%  (3 800+)
10. Microsoft            3.10%  (150 000)

Moins Sécurisé ?

  • Pas moins que propriétaire !

  • Plus réactif à la correction

  • Peer review → qualité

  • Contributeurs désintéressés

Juridique

licences

Reality check

Nos entreprises IT existent grâce à l’Open Source

(de manière directe ou indirecte)

open source 500
@like_gudim

L’histoire

kotlin springboot
json
koson logo large

.com/lectra-tech/koson

koson qrcode live

Utilisation

val obj = obj {
  "key" to 3.4
  "anotherKey" to arr["test", "test2", 1, 2.433, true]
  "nullValue" to null
  "emptyObject" to obj { }
  "emptyArray" to arr
  "custom" to Date()
}

println(obj)
{"key":3.4,"anotherKey":["test","test2",1,2.433,true] ... }

Pretty

println(obj.pretty())
{
  "key": 3.4,
  "anotherKey": [
    "test",
    "test2",
    1,
    2.433,
    true
  ],
  "nullValue": null,
  "emptyObject": { },
  "emptyArray": [ ],
  "custom": "Tue Dec 11 13:14:14 CET 2018"
}

Publication des artefacts

koson-1.0.4.jar

27 Ko, Ø dépendance (runtime Kotlin)

npm

=

easy
nexus

=

hard

Maven Central

✅ G.A.V.
✅ Metadata
✅ Licence
✅ Infos Developpeur(s)
✅ Infos SCM
✅ Fournir Javadoc & Sources
✅ Signer les fichiers par GPG/PGP
🔍 Preuve détention du domaine
🔍 Premier deploy manuel (par Sonatype)

Github

lectra tech

Conventions

files
.travis.yml
language: java
jdk: openjdk12

before_deploy:
  - echo $GPG_SECRET_KEYS | base64 --decode | gpg --import
  - echo $GPG_OWNERTRUST | base64 --decode | gpg --import-ownertrust
  - cp .travis.settings.xml $HOME/.m2/settings.xml
  - mvn -B -DskipTests=true clean deploy -Prelease

deploy:
  - provider: releases
    api_key: "${GITHUB_TOKEN}"
    file_glob: true
    file: target/*.jar
    skip_cleanup: true
    on:
      repo: "${TRAVIS_REPO_SLUG}"
      branch: master
      tags: true

Quand c’est fait

search

Publiez, contribuez !

os att

Merci !

slides & références

slides qrcode