Save 37% off PRO during our Black Friday Sale! »

2019 Linuxtage - Challenges to create your own Open Source Project

2019 Linuxtage - Challenges to create your own Open Source Project

Den eigenen Source-Code auf GitHub zu veröffentlichen ist ein erster Schritt zum eigene Open-Source-Projekt. Aber bei weitem nicht der einzige.

- das kleine Lizenz 1x1
- Promotion on GitHub
- Veröffentlichungen auf Maven Central
- Continuous Integration in the Cloud - Travis CI
- Public Code Coverage with Coveralls

Neben diesen Themen werden viele kleine Aspekte, die sich im Rahmen eines Projektes ergeben, angeschnitten.

Homepage : https://enrebaja.wordpress.com
AnchorFM : https://anchor.fm/elmar-dott
Twitter - https://twitter.com/ElmarDott
GitHub - https://github.com/ElmarDott
Lbry - https://lbry.tv/@elmar.dott:8
BitChute - https://www.bitchute.com/channel/3IyCzKdX8IpO/
--------------------------------------------------------------------------------------------------
YouTube Conference List - https://www.youtube.com/watch?v=VOwVfG0tbpM&list=PL2ZvHPhC-ji_1VIe6SY_j6By1uhkF4CWD

C59c6666e76977dde33948515fdb3a90?s=128

ElmarDott

April 27, 2019
Tweet

Transcript

  1. Challenges to create your own Open Source Project (c) 2019

    M. Schulz & J. Reiter
  2. Speaker Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND Marco Schulz studied at HS Merseburg, Germany, computer science and holds an engineers degree in software engineering. The main topics in his field of work are Software Architectures, automatism of the software development process and Software Configuration Management. Since more than 15 years he work in different large Web Application Projects. Currently he work as independent Consultant and is also writer of many articles in computer magazines. Joachim Reiter deals since the year 1997 with relational databases, automatic generation of forms, tables, queries and their relations. During his studies at TU Graz he also investigates possibilities to provide a versioning or history of the data inside a Database Management Systems (DBMS). In his role as software architect he is mainly focused on testing ability, maintenance and the reuse of source code.
  3. Table of Content Grazer Linuxtage 2019 M. Schulz & J.

    Reiter • Introduction • Licensing for Software and Content • Together Platform – a sample project • Workbench: free available infrastructure • Marketing Strategies • Business Concepts • Resources CC BY-ND
  4. The Myths Grazer Linuxtage 2019 M. Schulz & J. Reiter

    CC BY-ND Common myths about > Open Source ... • … has no license costs • … usage is always without costs • … are insecure applications • … developers are amateurs • … do not know how to make money Aren't you afraid to give your knowledge away for free? NO!
  5. Our favorite Open Source Grazer Linuxtage 2019 M. Schulz &

    J. Reiter CC BY-ND Apache NetBeans
  6. Copyright Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND Software and Content produced in Germany / Austria are automatic protected by copyright*. The regulations have no possibility to renounce the copyright. There are no restrictions in Germany / Austria to use software and content which have no copyrights. * UrhG – Urheberschutzgesetz http://bundesrecht.juris.de/urhg/index.html https://www.jusline.at/gesetz/urhg 04/2018 (S. 128-130)
  7. Copyright - Austria Grazer Linuxtage 2019 M. Schulz & J.

    Reiter CC BY-ND Software is a work of literature. Only a natural person can own authorship. Only the creator may • give a name to the work • grant (exclusive/non-exclusive) rights of use • reproduce / copy • distribute his work Decompilation is allowed in some cases!
  8. Software Licenses Grazer Linuxtage 2019 M. Schulz & J. Reiter

    CC BY-ND GPL - Open Source - free commercial usage - free to copy source and binaries - republish source adaptions - own source must be in GPL (strong copyleft) - selling of software/distribution possible Proprietary - Closed Source - License costs - No source changes - Generally distributable - code not adaptable - no selling LGPL - Open Source - free commercial usage - free to copy source and binaries - republish source adaptions - library include with own license (weak copyleft) - selling of software/distribution possible Apache License - Open Source - free commercial usage - free to copy source and binaries - no republishing of source-changes - no copyleft - selling of services on own risk
  9. Creative Commons Grazer Linuxtage 2019 M. Schulz & J. Reiter

    CC BY-ND Licensing Framework for Content Human and Machine readable Possible combinations of following properties: • mention of author • no derivatives • share alike: edit and (re-)publish under same conditions • non-commercial https://creativecommons.org
  10. Vision to Mission Grazer Linuxtage 2019 M. Schulz & J.

    Reiter CC BY-ND The only way to learn something new and understand the topic completely, you have to do it by your own – not just read about it.
  11. TP-CORE Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND Java Component Framework <dependency> <groupId>io.github.together.modules</groupId> <artifactId>core</artifactId> <version>1.1.0</version> </dependency> Feature List: Application Logger, generic Data Access Object, Velocity Template Engine, Property Reader, Application Configuration, SMTP E-Mail Client, QR Code Reader / Writer, Database Actions, Tree Walker, XML Tools, PDF Renderer, Image Processor TP = together Platform
  12. TP-CORE fact sheet Grazer Linuxtage 2019 M. Schulz & J.

    Reiter CC BY-ND Release 1.1 published on October 3rd 2018 Motivation: research on software development lifecycle with a real & complex project. • Java library build with Apache Maven • source code on GitHub & binaries on Maven Central • GPL-3.0 license • contains 12 features • test coverage ~ 95% • Release 1.2 Feature Toggle Annotations based on FF4J
  13. Release Process Grazer Linuxtage 2019 M. Schulz & J. Reiter

    CC BY-ND Semantic Versioning > Branch by Release Model • Major: incompatible API changes • Minor: add functionality • BugFix: corrections “SNAPSHOT” labels an artifact under development https://semver.org
  14. Architecture Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND
  15. Development Paradigms Grazer Linuxtage 2019 M. Schulz & J. Reiter

    CC BY-ND The decision to follow new paradigms was because of understanding how they work, what are the costs and what are the benefits. > Test Driven Development (TDD): Developer focus to implement their functionality against unit tests. > Behavioral Driven Development (BDD): A test team provides external test scenarios which the implementation has to pass. > Domain Driven Design (DDD): Architectural view on a module, based on the domain. The domain is represented by the entity objects.
  16. Infrastructure Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND Development Team Git Remote Source Repository Jenkins Build Server trigger Artifact Repository Nexus pull / push collaboration fetch & deploy Dependencies Test Stages deploy
  17. Collaboration :: GitHub Grazer Linuxtage 2019 M. Schulz & J.

    Reiter CC BY-ND Source Code Hosting • project overview [readme.md] • Licensing, tagging & badges • documentation [wiki] • issue management • branching, merging & pull requests
  18. TDD :: example Grazer Linuxtage 2019 M. Schulz & J.

    Reiter CC BY-ND AAA Principle = Arrange, Act, Assert int multiply (int x, int y) { int sum; if(x != null && y != null) { sum = x*y; } return sum; } @Test void testMultiply() { int x = 3; int y = 2; int result = multiply(x,y); assertEquals(6, result); } Test do not prove that a system is free of failures. They show or demonstrate the behavior of a system in defined conditions.
  19. Quality :: Maven Reports Grazer Linuxtage 2019 M. Schulz &

    J. Reiter CC BY-ND Unit Test Report : Surefire
  20. Quality :: Maven Reports Grazer Linuxtage 2019 M. Schulz &

    J. Reiter CC BY-ND Cobertura – Test Coverage
  21. Quality :: Maven Reports Grazer Linuxtage 2019 M. Schulz &

    J. Reiter CC BY-ND BDD JGiven Test Report :: Acceptance Tests
  22. Publishing :: Maven Central Grazer Linuxtage 2019 M. Schulz &

    J. Reiter CC BY-ND Binary Artifact Hosting – Dependency Management • own the domain of your GroupId parameter • maintain all mandatory meta data in you POM • create an Sonatype JIRA account: https://issues.sonatype.org/secure/Signup!default.jspa • create your Cryptography key • configure your POM • perform a release and Tag at Github • deploy your artifacts on OSS Nexus: https://oss.sonatype.org https://central.sonatype.org/pages/ossrh-guide.html
  23. Open Source Cloud Services Grazer Linuxtage 2019 M. Schulz &

    J. Reiter CC BY-ND • https://github.com • https://search.maven.org • https://javadoc.io • https://coveralls.io • https://travis-ci.org .travis.yml language: java jdk: - oraclejdk8 install: travis_wait 10
  24. Marketing You should • know your user and your customer

    • know your user’s needs and problems How to find customers for your project? • help people finding and following your project • use forums for possible users • try to join a community • keep going on Grazer Linuxtage 2019 M. Schulz & J. Reiter CC BY-ND
  25. Business Concepts How do you want to earn money? •

    consulting • applicability • individual feature-implementation • application integration • support Grazer Linuxtage 2019 M. Schulz & J. Reiter CC BY-ND
  26. Resources Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND [1] Open Source Initiative: https://opensource.org [2] Personal Blog (Marco): https://enrebaja.wordpress.com [3] Personal Blog (Joachim): https://kreativgeist.at [4] Project TP-CORE: https://github.com/ElmarDott/TP-CORE [5] Presentation download: https://www.slideshare.net/elmardott/ [6] Conference Video: https://www.youtube.com/channel/UCBdJ0zh8xnMrQ-xQ4Gymy2Q
  27. Book Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND Free Culture - The Nature and Future of Creativity Freie Kultur - Wesen und Zukunft der Kreativität (2004) Lawrence Lessig – http://www.free-culture.cc
  28. Gracias Grazer Linuxtage 2019 M. Schulz & J. Reiter CC

    BY-ND