ECP Continuous Integration Startup Tutorial

Total Page:16

File Type:pdf, Size:1020Kb

ECP Continuous Integration Startup Tutorial ECP Continuous Integration Startup Tutorial 2020 ECP Annual Meeting Houston, Texas February 4, 2020 Goals What do we hope you walk away with? 1. An understanding of current and planned GitLab CI capabilities 2. Facility points of contact and resources to get started today 3. Introduction to GitLab CI concepts 2 Agenda ● Introduction to HPC CI and GitLab ● Tutorial: Hello Environment [hands-on] ● GitLab Runner Enhancements ● Break ● HDF5 Group - CI Experience and Feedback ● Current Project Status and Ongoing Efforts ● Tutorial: Heat Equation [hands-on] ● Federation and Zero Trust Networking ● Secure Mirroring ● Recap and Path Forward ● Tutorial: Expanded Heat Equation [hands-on] 3 Introduction to HPC CI and GitLab ECP Project: WBS 2.4.4 Software Deployment at Facilities - Software Integration The Software Integration effort was established to bridge the ECP ST software development effort with the Exascale hardware and software environments deployed at the Facilities. ● Continuous Integration (CI) - Provide the ability to continuously test AD/ST software on facility hardware resources with software environments established at the Facility. Key for software development teams targeting systems being deployed agile feedback loop is key for development 5 Our Team Site GitLab capabilities | CI runners on HPC resources | Account authentication | Test resources / support ● Ryan Adamson ● Noah Ginsburg ● David Nicholaeff ● Anthony Agelastos ● Don Maghrak ● Neil O’Neill ● Paul Bryant ● Mario Melara ● Rebel Powell ● Tiffany Connors ● Thomas Mendoza ● Ryan Prout ● Darel Finkbeiner ● Mark Miller ● Mahesh Rajan ● Jim Galarowicz ● Dave Montoya ● Kyle Shaver ● Todd Gamblin ● Jeff Neel ● Lance Vowell ● Chris West 6 Continuous Integration (CI) Refresher • CI is the process of building / testing code for your project, best done before code is integrated into the repository or released for general usage. – https://about.gitlab.com/product/continuous-integration/ • As developers we most likely expect: – Customizable triggers (e.g. specific changes, schedules, targets, …) – Easy to set up and capable of using existing tests – Feedback (dashboard) identifying pass/fail cases – Access to required test resources – Resources than can handle code build requirements • Many may already use tools such as Travis, Jenkins, or even cron jobs Source: https://about.gitlab.com/product/continuous-integration/ 7 CI Solution for Large-Scale HPC Facilities Need: HPC centers need new security Response: Using GitLab as a basis, extend features within Continuous Integration security, permissions, and auditing features systems to serve thousands of users with while improving intra-Lab and inter-Lab unique hardware and security requirements. accessibility to CI pipelines. 8 Automated testing is an enormous productivity multiplier Projects cannot scale to accept many contributions without automation External contributors Code Review Code Free cloud testing and CI services Automated testing on Accepted unique HPC resources Contributions • Cloud testing is a boon to open source projects – Travis, CircleCI, GitLab, AppVeyor, Azure, etc. provide free cycles! • So-called Continuous Integration (CI) has been hard to implement at HPC centers due to security restrictions – Strict internal rules, lax security in most off-the-shelf products Code Repository • Lack of testing on key platforms will lead to less robust HPC software. 9 GitLab • GitLab is a single platform for the entire DevOps lifecycle – Plan, create, verify, and release • Core functionality (free) – Version control, collaboration, CI/CD, and documentation tools • Open source and capable of self management – MIT License Source: https://docs.gitlab.com/ee/ • Additional tiers of functionality are only available via license – https://about.gitlab.com/pricing/self-manag ed/feature-comparison/ 10 Gitlab - Features and Roadmap GitLab is a continually developing project, with new features being added. However, it is important to note that not everything is available in the “core” (free) tier. 11 GitLab CI/CD • GitLab offers robust support for CI/CD (Continues Delivery) • Primarily controlled via a ‘.gitlab-ci.yml’ file defined in your project repository – Defines the jobs that will be run, their structure, and what will trigger their potential execution – https://docs.gitlab.com/ee/ci/yaml/ • Terms: – Jobs: Core elements of CI, where commands are defined for execution – Stages: Defined order for job execution within a pipeline – Pipelines: Collection of jobs • Pipelines can be triggered through a number of mechanisms, including: commits, manually, api, scheduling, merge requests, upstream projects, and more... 12 GitLab Runner • “GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab” • Using GitLab CI/CD requires management of a runner: – Application supports the execution and reporting of CI jobs on target systems – Installed on target test resources and registered to a GitLab instance – Responsible for the execution of scripts whose creation is dictated by both the user’s CI file as well as administrative configuration 13 Our Vision Delivering a secure, easy-to-use CI solution to support Software Product testing against E6 HPC environments. 14 15 Tutorial: Hello Environment [hands-on] Tutorial Resources • Tutorial resources available for the hands-on sections • Please review and sign the provided agreement – If you don’t have a login or have any questions please let us know • Remember resources may be limited in comparison to the number of attendees, refrain to running jobs that would take a disproportionate amount of compute cycles. 17 Hello Environment - Results 18 Hello Environment - Results 19 Hello Environment - Results 20 Hello Environment - Results 21 Hello Environment - Results 22 Hello Environment - Results 23 Hello Environment - Results 24 GitLab CI Enhancements Security Challenges and Use Cases • All GitLab CI jobs run as the single gitlab-runner user • Achieving any level of isolation between CI jobs requires: – 1) Targeting specific runners such as Docker or VMs – 2) Having each user/team manage their own runner – Neither of these are ideal • Use cases we aim to support – Runner data isolation – Account specific resources – Sensitive data sets – Administrator management 26 Enhanced GitLab Functionality • Developing and supporting enhancements to GitLab applications to ensure targeted HPC testing resources can be available to code teams – Integrating facility feedback to improve technical aspects and support logistical challenges. • Runner capable of setuid, enforcing local permissions – Jobs are executed under a users local account • Batch executor added to interface with Cobalt, LSF, and Slurm – A runner side configuration that dictates how a CI job will be executed. • Federated cross site continuous integration – Previously auth endpoints only used at login, now they have been expanded and integrated into the CI process as well. • Existing GitLab functionality will continue to be supported – For instance continued upstream development efforts and improved to GitLab’s core CI/CD capabilities can be used with HPC focused enhancements 27 Batch Executor • Execute the user defined script (.gitlab-ci.yml) at the job level by submitting it the underlying scheduler – Comparable function to “Shell executor” and leverages setuid functionality – 1 Job = 1 Submission • Able to provide parameters for the job similar to a command line interface – SCHEDULER_PARAMETERS • Simply leverage the underlying Variable used to pass job submission argument scheduler Follows: https://docs.gitlab.com/ee/ci/variables/#priority-of-variables 28 Batch Executor with Setuid Enabled .gitlab-ci.yml Job output (GitLab web UI) 29 Batch Executor - Behavior Cobalt LSF Slurm Script Location where qrun Location where brun Location where srun ok? Element script will run? ok? script will run? ok? script will run? before_script launch/mom node yes launch node yes batch node yes script launch/mom node yes launch node yes batch node yes after_script login node no login node no login node no “Scripts specified in before_script are concatenated with any scripts specified in the main script, and executed together in a single shell.” - GitLab documentation 30 What is the GitLab Runner Doing? • The GitLab runner polls the server to identify available CI jobs – Will only begin executing a job once it has been scheduled by the server • Job local to runner result in generated Bash scripts based upon the contents of the .gitlab-ci.yml – Works similar to upstream GitLab (https://docs.gitlab.com/runner/shells/index.html) – Scripts are executed by piping them into a non-interactive Bash login shell. • Every step in a CI job is executed by a valid local user account – This is a key change with setuid enabled runner • Each user is provided with a clean login shell – Ensures runner environment does not compromise subsequent jobs – Users experience an environment similar to what they would see on a login node – Depending on your environment this may affect the results of your CI 31 Setuid and GitLab Server Requirements • Setuid feature enables GitLab to run bare-metal CI jobs securely on large, multi-tenant systems – All CI job actions are executed under the local user’s account with appropriate privileges observed • Running a setuid enabled runner requires: – Root privileges - The runners require elevated privileges – Trust - GitLab server and the hosts of any setuid enabled runners trust each other – HTTPS
Recommended publications
  • Debian Developer's Reference Version 12.0, Released on 2021-09-01
    Debian Developer’s Reference Release 12.0 Developer’s Reference Team 2021-09-01 CONTENTS 1 Scope of This Document 3 2 Applying to Become a Member5 2.1 Getting started..............................................5 2.2 Debian mentors and sponsors......................................6 2.3 Registering as a Debian member.....................................6 3 Debian Developer's Duties 9 3.1 Package Maintainer's Duties.......................................9 3.1.1 Work towards the next stable release............................9 3.1.2 Maintain packages in stable .................................9 3.1.3 Manage release-critical bugs.................................. 10 3.1.4 Coordination with upstream developers............................ 10 3.2 Administrative Duties.......................................... 10 3.2.1 Maintaining your Debian information............................. 11 3.2.2 Maintaining your public key.................................. 11 3.2.3 Voting.............................................. 11 3.2.4 Going on vacation gracefully.................................. 12 3.2.5 Retiring............................................. 12 3.2.6 Returning after retirement................................... 13 4 Resources for Debian Members 15 4.1 Mailing lists............................................... 15 4.1.1 Basic rules for use....................................... 15 4.1.2 Core development mailing lists................................. 15 4.1.3 Special lists........................................... 16 4.1.4 Requesting new
    [Show full text]
  • Tuto Documentation Release 0.1.0
    Tuto Documentation Release 0.1.0 DevOps people 2020-05-09 09H16 CONTENTS 1 Documentation news 3 1.1 Documentation news 2020........................................3 1.1.1 New features of sphinx.ext.autodoc (typing) in sphinx 2.4.0 (2020-02-09)..........3 1.1.2 Hypermodern Python Chapter 5: Documentation (2020-01-29) by https://twitter.com/cjolowicz/..................................3 1.2 Documentation news 2018........................................4 1.2.1 Pratical sphinx (2018-05-12, pycon2018)...........................4 1.2.2 Markdown Descriptions on PyPI (2018-03-16)........................4 1.2.3 Bringing interactive examples to MDN.............................5 1.3 Documentation news 2017........................................5 1.3.1 Autodoc-style extraction into Sphinx for your JS project...................5 1.4 Documentation news 2016........................................5 1.4.1 La documentation linux utilise sphinx.............................5 2 Documentation Advices 7 2.1 You are what you document (Monday, May 5, 2014)..........................8 2.2 Rédaction technique...........................................8 2.2.1 Libérez vos informations de leurs silos.............................8 2.2.2 Intégrer la documentation aux processus de développement..................8 2.3 13 Things People Hate about Your Open Source Docs.........................9 2.4 Beautiful docs.............................................. 10 2.5 Designing Great API Docs (11 Jan 2012)................................ 10 2.6 Docness.................................................
    [Show full text]
  • Alinex Data Store
    Alinex Data Store Read, work and write data structures to differents stores Alexander Schilling Copyright © 2019 - 2021 <a href="https://alinex.de">Alexander Schilling</a> Table of contents Table of contents 1. Home 6 1.1 Alinex Data Store 6 1.1.1 Usage 6 1.1.2 Debugging 6 1.1.3 Module Usage 7 1.1.4 Chapters 7 1.1.5 Support 7 1.2 Command Line Usage 8 1.2.1 Input 8 1.2.2 Output 8 1.2.3 Transform Files 9 1.2.4 Using Definition 9 1.2.5 Examples 9 1.3 Last Changes 10 1.3.1 Version 1.16.0 - (12.05.2021) 10 1.3.2 Version 1.15.0 - (02.01.2021) 10 1.3.3 Version 1.13.0 - (16.06.2020) 10 1.3.4 Version 1.12.0 - (27.01.2020) 10 1.3.5 Version 1.11.0 - (13.01.2020) 11 1.3.6 Version 1.10.0 - (22.11.2019) 11 1.3.7 Version 1.9.1 - (13.11.2019) 11 1.3.8 Version 1.8.0 - (31.10.2019) 11 1.3.9 Version 1.7.0 - (13.10.2019) 11 1.3.10 Version 1.6.0 - (01.10.2019) 11 1.3.11 Version 1.5.0 - (28.08.2019) 12 1.3.12 Version 1.4.0 - (15.08.2019) 12 1.3.13 Version 1.3.0 - (6.08.2019) 12 1.3.14 Version 1.2.0 - (22.06.2019) 13 1.3.15 Version 1.1.0 - (17.05.2019) 13 1.3.16 Version 1.0.0 - (12.05.2019) 13 1.3.17 Version 0.7.0 (29.04.2019) 13 1.3.18 Version 0.6.0 (26.04.2019) 14 1.3.19 Version 0.5.0 (19.04.2019) 14 1.3.20 Version 0.4.0 (17.04.2019) 14 1.3.21 Version 0.3.0 (15.04.2019) 14 - 2/80 - Copyright © 2019 - 2021 <a href="https://alinex.de">Alexander Schilling</a> Table of contents 1.3.22 Version 0.2.0 (12.04.2019) 14 1.3.23 Version 0.1.0 (0t.04.019) 14 1.4 Roadmap 16 1.4.1 Add Protocols 16 1.4.2 Multiple sources 16 1.5 Privacy statement 17 2.
    [Show full text]
  • D4.1 Source Code and Documentation Repository
    D4.1 Source code and documentation repository Co-funded by the Horizon 2020 Framework Programme of the European Union GRANT AGREEMENT NUMBER: 842009 - NIVA DELIVERABLE NUMBER D4.1 DELIVERABLE TITLE Source code and documentation repository RESPONSIBLE AUTHOR Konstantinos Kountouris – Nikolaos Galanis, OPEKEPE Greece 1 GRANT AGREEMENT N. 842009 PROJECT ACRONYM NIVA PROJECT FULL NAME A New IACS Vision in Action STARTING DATE (DUR.) 1/06/2019 ENDING DATE 30/05/2022 PROJECT WEBSITE COORDINATOR Sander Janssen ADDRESS Droevendaalsesteeg 1, Wageningen REPLY TO [email protected] PHONE +31 317 481908 EU PROJECT OFFICER Mrs. Francisca Cuesta Sanchez WORKPACKAGE N. | TITLE WP4 | Knowledge Information System WORKPACKAGE LEADER 8 - AGEA DELIVERABLE N. | TITLE D4.1 | Source code and documentation repository RESPONSIBLE AUTHOR Konstantinos Kountouris – Nikolaos Galanis, OPEKEPE Greece REPLY TO [email protected], [email protected] DOCUMENT URL DATE OF DELIVERY (CONTRACTUAL) 31 August 2019 (M3) DATE OF DELIVERY (SUBMITTED) 30 September 2019 (M4) VERSION | STATUS V1.0| Final NATURE Report DISSEMINATION LEVEL PUBLIC Konstantinos Kountouris – Nikolaos Galanis - Ioannis Andreou, OPEKEPE AUTHORS (PARTNER) Greece 2 VERSION MODIFICATION(S) DATE AUTHOR(S) Konstantinos Kountouris – Nikolaos Galanis - Ioannis 1.0 Final version 24 August 2019 Andreou, OPEKEPE Greece 3 Table of Contents Choosing the proper tool ........................................................................................ 5 Requirements and Assumptions ...........................................................................
    [Show full text]
  • Jetbrains Upsource Comparison Upsource Is a Powerful Tool for Teams Wish- Key Benefits Ing to Improve Their Code, Projects and Pro- Cesses
    JetBrains Upsource Comparison Upsource is a powerful tool for teams wish- Key benefits ing to improve their code, projects and pro- cesses. It serves as a polyglot code review How Upsource Compares to Other Code Review Tools tool, a source of data-driven project ana- lytics, an intelligent repository browser and Accuracy of Comparison a team collaboration center. Upsource boasts in-depth knowledge of Java, PHP, JavaScript, Integration with JetBrains Tools Python, and Kotlin to increase the efcien- cy of code reviews. It continuously analyzes Sales Contacts the repository activity providing a valuable insight into potential design problems and project risks. On top of that Upsource makes team collaboration easy and enjoyable. Key benefits IDE-level code insight to help developers Automated workflow, to minimize manual tasks. Powerful search engine. understand and review code changes more efectively. Smart suggestion of suitable reviewers, revi- IDE plugins that allow developers to partici- sions, etc. based on historical data and intel- pate in code reviews right from their IDEs. Data-driven project analytics highlighting ligent progress tracking. potential design flaws such as hotspots, abandoned files and more. Unified access to all your Git, Mercurial, Secure, and scalable. Perforce or Subversion projects. To learn more about Upsource, please visit our website at jetbrains.com/upsource. How Upsource Compares to Other Code Review Tools JetBrains has extensively researched various As all the products mentioned in the docu- tools to come up with a useful comparison ment are being actively developed and their table. We tried to make it as comprehensive functionality changes on a regular basis, this and neutral as we possibly could.
    [Show full text]
  • Gogs Vs Gitlab Gitlab Compared to Other Devops Tools
    Gogs vs GitLab GitLab compared to other DevOps tools Gogs is a light weight git server written in Go which is designed to be simple to set up and operate and can be run on just about anything. It is 100% open source under the MIT OSS license and provided only in self-managed form. Gogs offers repository file viewing and editing, project issue tracking, and a built-in wiki for project documentation. FEATURES Built-in CI/CD GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access. Learn more about CI/CD Group Milestones Create and manage milestones across projects, to work towards a target date from the group level. View all the issues for the milestone you’re currently working on across multiple projects. Learn more about Group Milestones Runs with less memory and consumes less CPU power Uses little memory, it runs fine with 512MB. Uses little CPU power since Go is a compiled language Powerful Issue Tracker Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects. Learn more about the Issue Tracker Issue Boards GitLab has Issue Boards, each list of an Issue Board is based on a label that exists in your issue tracker. The Issue Board will therefore match the state of your issue tracker in a user-friendly way.
    [Show full text]
  • Spiraplan External Bug Tracking Integration Guide
    SpiraTest / SpiraTeam / SpiraPlan® | External Bug-Tracking Integration Guide Inflectra Corporation Date: July 8th, 2019 Contents Introduction SpiraTest® provides an integrated, holistic Introduction ........................................... 1 Quality Assurance (QA) management solution that manages requirements, tests and incidents 1. Setting up Data Synchronization ...... 2 in one environment, with complete traceability from inception to completion. 2. Using SpiraTeam with JIRA 5+ ........ 9 SpiraTeam® is an integrated Application 3. Using SpiraTeam with JIRA 3 / 4.... 34 Lifecycle Management (ALM) system that manages your project's requirements, releases, 4. Using SpiraTest with Bugzilla ......... 48 test cases, issues and tasks in one unified environment. SpiraTeam® contains all of the 5. Using SpiraTest with MS-TFS ........ 60 features provided by SpiraTest® - our highly acclaimed quality assurance system and 6. Using SpiraTest with FogBugz ....... 84 SpiraPlan® - our agile-enabled project management solution. 7. Using SpiraTeam with Mantis ......... 96 However, many organizations may be already 8. Using SpiraTeam with ClearQuest 107 using other bug-tracking systems and not want to have to migrate all their users over to 9. Using SpiraTeam with IBM RTC... 119 SpiraTeam. Therefore SpiraPlan, SpiraTest and SpiraTeam are capable of integrating with a 10. Using Spira with Axosoft 14+ ..... 127 variety of commercial and open-source bug- tracking systems. 11. Using SpiraTeam with Redmine . 138 This guide outlines how to integrate and use 12. Using Spira with VersionOne...... 149 SpiraTest, SpiraPlan and SpiraTeam in conjunction with other external Bug/Issue 13. Using Spira with OnTime 11 ....... 159 Tracking systems. 14. Using Spira with GitHub ............. 172 This guide assumes that the reader is familiar with both SpiraTeam and the appropriate tool 15.
    [Show full text]
  • Gitlab As an Institutional Service Conquaire Workshop, 3 April 2019, Christian Pietsch
    GitLab as an Institutional Service Conquaire workshop, 3 April 2019, Christian Pietsch Goals of this talk At the end of this talk, you will … • understand why versioning is important • know what Git is • know what GitHub is • know what GitLab is • know what Continuous Integration is. Knowledge workers are like aerial artists Daily routine of knowledge workers: (1) from one island of stability (2) through uncertain territory (3) to another island. We all do versioning • Undo • Inventive use of file names: • Record changes – cv-old.doc – cv-old-old.doc • Save in a wiki – cv-2019.doc • Transparent version – cv_2019.doc tracking in some file – cv-april.doc systems, online storage – cv-2019-backup.doc – cv-final.doc • Backups – cv-really-final.doc Why? Versions are the stepping stones of knowledge workers. (1) island of stability (2) uncertain territory (1) island of stability (3) new island (2) uncertain territory (1) island of stability revision 2 (3) new island 0xd319c1f (2) uncertain territory revision 1 (1) island of stability 0x38b12af Proper versioning software Popular versioning software number of questions asked on StackExchange about current versioning software Proper versioning software GitHub’s popularity boosts Git 2008: GitHub launch 2010: GitHub hosting 1 million repositories 2011: GitHub hosting 2 million repositories, surpassing SourceForge and Google Code 2013, January: GitHub hosting 5 million repositories 2013, December: GitHub hosting 10 million repositories Proper versioning software Why is GitHub so popular? Social coding! 1. You publish your code in your own GitHub repository 2. Others “fork” (copy) your code and improve it in their own GitHub repository 3.
    [Show full text]
  • Biodynamo: a New Platform for Large-Scale Biological Simulation
    Lukas Johannes Breitwieser, BSc BioDynaMo: A New Platform for Large-Scale Biological Simulation MASTER’S THESIS to achieve the university degree of Diplom-Ingenieur Master’s degree programme Software Engineering and Management submitted to Graz University of Technology Supervisor Ass.Prof. Dipl.-Ing. Dr.techn. Christian Steger Institute for Technical Informatics Advisor Ass.Prof. Dipl.-Ing. Dr.techn. Christian Steger Dr. Fons Rademakers (CERN) November 23, 2016 AFFIDAVIT I declare that I have authored this thesis independently, that I have not used other than the declared sources/resources, and that I have explicitly indicated all ma- terial which has been quoted either literally or by content from the sources used. The text document uploaded to TUGRAZonline is identical to the present master‘s thesis. Date Signature This thesis is dedicated to my parents Monika and Fritz Breitwieser Without their endless love, support and encouragement I would not be where I am today. iii Acknowledgment This thesis would not have been possible without the support of a number of people. I want to thank my supervisor Christian Steger for his guidance, support, and input throughout the creation of this document. Furthermore, I would like to express my deep gratitude towards the entire CERN openlab team, Alberto Di Meglio, Marco Manca and Fons Rademakers for giving me the opportunity to work on this intriguing project. Furthermore, I would like to thank them for vivid discussions, their valuable feedback, scientific freedom and possibility to grow. My gratitude is extended to Roman Bauer from Newcastle University (UK) for his helpful insights about computational biology detailed explanations and valuable feedback.
    [Show full text]
  • Awesome Selfhosted - Software Development - Project Management
    Awesome Selfhosted - Software Development - Project Management Software Development - Project Management See also: awesome-sysadmin/Code Review Bonobo Git Server - Set up your own self hosted git server on IIS for Windows. Manage users and have full control over your repositories with a nice user friendly graphical interface. ( Source Code) MIT C# Fossil - Distributed version control system featuring wiki and bug tracker. BSD-2-Clause- FreeBSD C Goodwork - Self hosted project management and collaboration tool powered by Laravel & VueJS. (Demo, Source Code) MIT PHP Gitblit - Pure Java stack for managing, viewing, and serving Git repositories. (Source Code) Apache-2.0 Java gitbucket - Easily installable GitHub clone powered by Scala. (Source Code) Apache-2.0 Scala/Java Gitea - Community managed fork of Gogs, lightweight code hosting solution. (Demo, Source Code) MIT Go GitLab - Self Hosted Git repository management, code reviews, issue tracking, activity feeds and wikis. (Demo, Source Code) MIT Ruby Gitlist - Web-based git repository browser - GitList allows you to browse repositories using your favorite browser, viewing files under different revisions, commit history and diffs. ( Source Code) BSD-3-Clause PHP Gitolite - Gitolite allows you to setup git hosting on a central server, with fine-grained access control and many more powerful features. (Source Code) GPL-2.0 Perl GitPrep - Portable Github clone. (Demo, Source Code) Artistic-2.0 Perl Git WebUI - Standalone web based user interface for git repositories. Apache-2.0 Python Gogs - Painless self-hosted Git Service written in Go. (Demo, Source Code) MIT Go Kallithea - Source code management system that supports two leading version control systems, Mercurial and Git, with a web interface.
    [Show full text]
  • Downloaded from the EU-Project Portal (Not from the Cooptool)
    Ref. Ares(2019)933834 - 15/02/2019 Deliverable D3.2 CREL (Core Release) Synchronization Report Project acronym: ATTRACkTIVE Starting date: 01/09/2016 Duration (in months): 28 Call (part) Identifier: H2020-S2RJU-CFM-2015-01-1 Grant agreement no: 730822 Due date of deliverable: 28/02/2018 Actual submission date: 21/01/2019 Responsible/Author: Sofie Käthe Agergaard Dissemination level: PU Status: Issued Reviewed: yes G A 730822 P a g e 1 | 1 1 8 Document history Revision Date Description 1 18/05/2018 Initial version 2 08/08/2018 Update with partners contribution 3 03/01/2019 Update main decisions 4 18/01/2019 Partner review 5 21/01/2019 Final release G A 730822 P a g e 2 | 1 1 8 TABLE OF CONTENT TABLE OF CONTENT ................................................................................................................................................. 3 EXECUTIVE SUMMARY ............................................................................................................................................. 5 LIST OF FIGURES ...................................................................................................................................................... 6 1. INTRODUCTION ................................................................................................................................................... 7 1.1 List of acronyms ............................................................................................................................................. 7 1.2 Reference documents ...................................................................................................................................
    [Show full text]
  • What's Behind JOSM ?
    What’s behind JOSM ? @VincentPrivat – #sotm2019 – Heidelberg – CC-BY-SA 4.0 Intro : Quick facts about JOSM Oldest still developed: created in 2005, only one year after OSM Most used editor since 2010 (67 % of 2018 contributions) Feature-rich, extensible Available on Linux, Windows, macOS Translated in 36 languages Important community Site : https://josm.openstreetmap.de 2 Intro : Plan 1) Technologies & Extensibility 2) Project Management 3) Statistics 4) Work in progress & to come 3 1. Technologies & extensibility Core features, formats and protocols Load, Edit, Render, Validate, Upload : ● OSM data: XML, JSON (new in 2018-08) ● Traces: GPX, NMEA, RTKLib (new in 2019-08) ● OSM notes: XML With the help of : ● Edition/Search/Filtering/Remote control tools ● OSM presets: XML ● Mappaint styles: MapCSS ● Validation rules: Java, MapCSS ● Imagery: WMS, TMS, WMTS ● Geottaged pictures: JPG, PNG ● Audio recordings: WAV, MP3/AAC/AIF (new in 2017-06) 5 Technologies Java 8+ / Swing Very few dependencies Apache Commons Compress : Bzip2, XZ compression Apache Commons JCS: Imagery tile cache Apache Commons Validator : Validation routines (URLs…) SvgSalamander : SVG Support Metadata Extractor : EXIF metadata reading of geotagged pictures Signpost : OAuth authentification Jsonp: JSON support * opening_hours.js: opening_hours syntax * = JavaScript libraries at risk * overpass-wizard: Overpass API wizard 6 Extensions : plugins More than 100 plugins adding for example: ● New data formats/ protocols : ● pbf, o5m, geojson, opendata (csv, ods, xls, shapefile,
    [Show full text]