PIP-II Technical Workshop Software Development Strategy Discussion

Total Page:16

File Type:pdf, Size:1020Kb

PIP-II Technical Workshop Software Development Strategy Discussion PIP-II Technical Workshop Software Development Strategy Discussion A Partnership of: Tanya Levshina US/DOE SCD/CPI India/DAE Italy/INFN 1-4 December 2020 UK/UKRI-STFC France/CEA, CNRS/IN2P3 Poland/WUST Outline • Key to successful collaboration in global inter‐organizational software development projects • Selection of a shared repository platform • Project organization 2 1-4 December 2020 PIP-II Technical Workshop Key Ingredients for a Successful Project • Clear understanding of – requirements and scope – roles and roadmap • Communication and ongoing reviews • Documentation • Well structured code • Shared repository 3 1-4 December 2020 PIP-II Technical Workshop Shared code repository • Effectively share code in a managed way to speed up development • Avoid code duplication • Encourage best practices in code development • Improve code quality and provide means for collaboration 4 1-4 December 2020 PIP-II Technical Workshop Open-Source Version Control Software (VCS) Software History Current Repository Atomic Signed Merge Interactive Users Status model Commit revision Tracking Commit First publicly NetBSD, OpenBSD CVS Maintained Client-server No No No No released July 3, but new 1986; based on features not RCS added. Last release from 2008. Subversion Started in Active Client-server Yes No Yes Partial ASF, gcc, SourceForge, FreeBSD, (SVN) 2000 by CVS GoogleCode, PuTTY, Apache OpenOffice, developers TWiki with goal of replacing CVS Mercurial Started by Active Distributed Yes Yes Yes Yes Was used by Facebook and Mozilla at Matt Mackall some point in 2005 GNU Bazaar Canonical Ltd Active Distributed Yes Yes Yes Yes MariaDB, Squid, PyChart, Linux Foundation GIT Started by Active Distributed Yes Yes Yes Yes Linux kernel, Android, Bugzilla, LG, jQuery, Linus DragonFly BSD, GNOME, GNU Emacs, KDE, Torvalds in MySQL, Ericsson, Microsoft, Huawei, April 2005. Apple, Amazon 5 1-4 December 2020 PIP-II Technical Workshop VCS Properties • Preserved and traceable history • History includes not only files but directories (folder) structure • No single central repository • Ability to maintain a repository while offline • Access control: view/contribute/maintain • Branching/merge support. Merges should be easy especially when there are no conflicts. • Tag management • Built-in diff capabilities • Rollback capabilities • Efficient binary file support GIT is a clear winner for the time being 6• 1-4 December 2020 PIP-II Technical Workshop Requirements for VC Platform (I) • GUI to perform all major operations, preferably from browser • Access Control (Security) • Code review tools • Configurable approval interface • Integration with bug tracking systems • Integration with software build tools • Release management • Integration with Continuous Integration (CI) tools • Documentation 7 1-4 December 2020 PIP-II Technical Workshop Requirements for VC Platform (II) • Search • Notifications • Statistics/metrics and visualization • Various deployment schemas • Integration with 3rd party tools • Integration with IDE 8 1-4 December 2020 PIP-II Technical Workshop Comparison of VC Platforms Name Users (M) Projects Code Bug Web Wiki Access Build Self hosting (M) review Tracking hosting Control System GitHub 40 100 Yes Yes Git, SVN Yes Private/ 3rd-party GitHub Public Travis CI, Enterprise Appveyor (Comercial) (addition of “Actions” to GHES) BitBucket 5 N/A Yes Yes (Jira Git Yes Private/ Yes BitBucket integration) Public Server (Commercial) Launchpad 4 0.04 Yes Yes Git, Bazaar No Public Ubuntu Yes (Ubuntu only?) SourceForge 3.7 0.5 Yes Yes Git, SVN, Yes Public No Free Mercurial GitLab 0.1 0.5 Yes Yes Git Yes Private/ Yes Community Public Edition(Free)/E nterprise Edition (Commercial) 9 1-4 December 2020 PIP-II Technical Workshop VC Platform Pricing GitHub: – Single developer - FREE unlimited private/public repositories (new feature of 2019) and 500MB package size – Team - $4/user/month (with the user and team permissions management) and 2GB package size – Business - $21/user/month and 500GB package size GitLab: – The community edition is free for an unlimited number of users – Enterprise Editions: • Starter is $4/user/month • Premium for $19/user/month • Gold $99/user/month Bitbucket: – Small teams (up to 5 users) can use it for free – Teams pay $1/user/month or the unlimited users' plan, which costs $200/month. 10 1-4 December 2020 PIP-II Technical Workshop Security and Access Control (GitHub) • Dependabot alerts & security update • Public secret scanning • Code scanning on all public repositories • Role-based access control • Could enable 2FA • GitHub Enterprise is integrated with an organization's authentication (LDAP, SAML SSO). • GitHub Enterprise provides audit logs and monitoring 11 1-4 December 2020 PIP-II Technical Workshop Security and Access Control (GitLab) • Code is tested upon commit for security threats • The security team can see and manage unresolved vulnerabilities captured as a by-product of software development. • SAML SSO and enforced 2FA • Premium and Gold provide: – CI/CD for GitHub – Audit events and log • Gold provides: – Credentials inventory and management – Secret detection: prevent secrets from accidently leaking into your Git history. – License compliance: automatically search project dependencies for approved and unapproved licenses 12 1-4 December 2020 PIP-II Technical Workshop PIP-II IT Software Status • LLRF and EPICs IOC firmware/software repository is GIT • Controls related software is in CVS and GIT • VC Platform is Redmine (Open-Source) hosted at Fermilab • Multiple projects are used for LLRF firmware/software repositories in Redmine • Major issues: – code redundancy – storage of binaries (e.g qar files) instead of source code – lack of tagging/release policy 13 1-4 December 2020 PIP-II Technical Workshop Fermilab VC Platform Roadmap • Strong push to use GitHub – Fermilab developers could contribute code to GitHub Open-Source products. – Fermilab developers who are creating a new Open-Source product at GitHub should get an approval from Partnership Agreements and Intellectual Property Management team. Software that is visible to the public and could be reused should have a reference to an appropriate software license. The guidelines for license selection is provided by Fermilab Legal Office. Computing Sector is currently using BSD 3- clause License or Apache 2.0 • The Core Computing Division supports GitHub Enterprise on- Prem. They are running PIP-II IT instance with 20 licenses. In order to get to an access a user should be registered with Fermilab. • The Scientific Computing Division has some experience with GitLab on-Prem. 14 1-4 December 2020 PIP-II Technical Workshop PIP-II Software Organization • The development of the software for the PIP-II will take several years. • The maintenance of the PIP-II software will take many years. • There are multiple developers and multiple organizations with different approaches for software development and different organizational rules. • That is why it is crucial to figure out how we want to structure a project, so it is possible to: – Understand the layout and dependencies – Understand the purpose of a particular subproject/module – Avoid duplication of development efforts and promote reuse – Decide on branching/tagging and release procedure 15 1-4 December 2020 PIP-II Technical Workshop What Do We Want to Build? • We would need to identify: – the structural elements and their interfaces – the behavior of the elements specified by the collaborations among those elements – the organization of the elements into progressively larger The slide from Lia Merminga’s presentation subsystems • We would need to decide on architectural style and agree on standards in order to build these elements and their interfaces. 16 1-4 December 2020 PIP-II Technical Workshop What Do We Want to Build? 17 1-4 December 2020 PIP-II Technical Workshop Project Structure Organization Examples (I) Chaos Organization by teams/ institutions 18 1-4 December 2020 PIP-II Technical Workshop Project Structure Organization Examples (II) Rumbaugh Model - objects Don't repeat yourself (DRY) in the code mirror objects in principle: "Every piece of knowledge real world. must have a single, unambiguous representation within a system" 19 1-4 December 2020 PIP-II Technical Workshop Topics for discussion • How to move forward on selection of VC Platform? • What should be contributed to existing Open-Source projects; started as a new Open-Source project; or remain private? • How to organize code that is being written right now so the structure would be suitable for the future development. What are the code and documentation? • What is a review policy for contributed code? • Should CI be part of release process? • What are the requirements for logging and monitoring? • What are cyber security related aspects of the project? 20 1-4 December 2020 PIP-II Technical Workshop.
Recommended publications
  • Continuous Integration
    Continuous Integration Mark C. Miller Lawrence Livermore National Laboratory Software Productivity Track, ATPESC 2020 See slide 2 for license details exascaleproject.org License, Citation and Acknowledgements License and Citation • This work is licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0). • The requested citation the overall tutorial is: David E. Bernholdt, Anshu Dubey, Mark C. Miller, Katherine M. Riley, and James M. Willenbring, Software Productivity Track, in Argonne Training Program for Extreme Scale Computing (ATPESC), August 2020, online. DOI: 10.6084/m9.figshare.12719834 • Individual modules may be cited as Speaker, Module Title, in Software Productivity Track… Acknowledgements • Additional contributors include: Patricia Grubel, Rinku Gupta, Mike Heroux, Alicia Klinvex, Jared O’Neal, David Rogers, Deborah Stevens • This work was supported by the U.S. Department of Energy Office of Science, Office of Advanced Scientific Computing Research (ASCR), and by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration. • This work was performed in part at the Argonne National Laboratory, which is managed by UChicago Argonne, LLC for the U.S. Department of Energy under Contract No. DE-AC02-06CH11357. • This work was performed in part at the Oak Ridge National Laboratory, which is managed by UT-Battelle, LLC for the U.S. Department of Energy under Contract No. DE-AC05-00OR22725. • This work was performed in part at the Lawrence Livermore National Laboratory, which is managed by Lawrence Livermore National Security, LLC for the U.S. Department of Energy under Contract No.
    [Show full text]
  • Mkusb Quick Start Manual
    Dus, guidus, mkusb version 12 quick start manual by sudodus alias nio-wiklund at launchpad 14 August 2021 mkusb - quick start manual 1 Prepare for mkusb ● Drives alias mass storage devices – You need two drives or mass storage devices (pendrive, flash card, HDD, SSD). The minimum sizes are 2 GB and 8 GB, but obviously the final operating system will soon need more space for your personal files as well as for additional system files (program packages), ● a drive for the installer at least as big as the iso file for cloning, so minimum 2 GB for Ubuntu Server, 4 GB for standard Ubuntu desktop and the Ubuntu family flavours for a live only system and 8 GB or more for a persistent live system (typically a USB pendrive, but a memory card or an external SSD will also work), ● a drive for the target, the final installed operating system (typically an internal drive, but it could also be connected via USB, eSATA or a card reader). Minimum 8 GB for Lubuntu but 16 GB or more is better, and standard Ubuntu desktop with a lot of snaps needs at least 32 GB. ● Backup – Backup all personal data before trying this method because the installer drive and maybe also the target drive will be completely overwritten Tough guys never backup their data, they do the work twice instead ;-) 14 August 2021 mkusb - quick start manual 2 Install or download mkusb ● Install (or download) the shell-script mkusb and ● download the operating system as a – hybrid iso file or compressed image file.
    [Show full text]
  • Ubuntu Kung Fu
    Prepared exclusively for Alison Tyler Download at Boykma.Com What readers are saying about Ubuntu Kung Fu Ubuntu Kung Fu is excellent. The tips are fun and the hope of discov- ering hidden gems makes it a worthwhile task. John Southern Former editor of Linux Magazine I enjoyed Ubuntu Kung Fu and learned some new things. I would rec- ommend this book—nice tips and a lot of fun to be had. Carthik Sharma Creator of the Ubuntu Blog (http://ubuntu.wordpress.com) Wow! There are some great tips here! I have used Ubuntu since April 2005, starting with version 5.04. I found much in this book to inspire me and to teach me, and it answered lingering questions I didn’t know I had. The book is a good resource that I will gladly recommend to both newcomers and veteran users. Matthew Helmke Administrator, Ubuntu Forums Ubuntu Kung Fu is a fantastic compendium of useful, uncommon Ubuntu knowledge. Eric Hewitt Consultant, LiveLogic, LLC Prepared exclusively for Alison Tyler Download at Boykma.Com Ubuntu Kung Fu Tips, Tricks, Hints, and Hacks Keir Thomas The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Prepared exclusively for Alison Tyler Download at Boykma.Com Many of the designations used by manufacturers and sellers to distinguish their prod- ucts are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
    [Show full text]
  • Distributed Configuration Management: Mercurial CSCI 5828 Spring 2012 Mark Grebe Configuration Management
    Distributed Configuration Management: Mercurial CSCI 5828 Spring 2012 Mark Grebe Configuration Management Configuration Management (CM) systems are used to store code and other artifacts in Software Engineering projects. Since the early 70’s, there has been a progression of CM systems used for Software CM, starting with SCCS, and continuing through RCS, CVS, and Subversion. All of these systems used a single, centralized repository structure. Distributed Configuration Management As opposed to traditional CM systems, Distributed Configuration Management Systems are ones where there does not have to be a central repository. Each developer has a copy of the entire repository and history. A central repository may be optionally used, but it is equal to all of the other developer repositories. Advantages of Distributed Configuration Management Distributed tools are faster than centralized ones since metadata is stored locally. Can use tool to manage changes locally while not connected to the network where server resides. Scales more easily, since all of the load is not on a central server. Allows private work that is controlled, but not released to the larger community. Distributed systems are normally designed to make merges easy, since they are done more often. Mercurial Introduction Mercurial is a cross-platform, distributed configuration management application. In runs on most modern OS platforms, including Windows, Linux, Solaris, FreeBSD, and Mac OSX. Mercurial is written 95% in Python, with the remainder written in C for speed. Mercurial is available as a command line tool on all of the platforms, and with GUI support programs on many of the platforms. Mercurial is customizable with extensions, hooks, and output templates.
    [Show full text]
  • PETER STEPHENS Current Technical Pursuits: Agile Practices, Cloud
    PETER STEPHENS 512.778.6322 / cell 865.567.7173 1955 County Road 202 www.diligentsoftware.com/resume Liberty Hill, TX 78642 [email protected] Current Technical Pursuits: Agile Practices, Cloud Computing and Amazon Web Services, Cloud Automation, ASP.NET MVC, REST based web services, JavaScript and jQuery CURRENT SKILLS • Microsoft.NET Framework versions 1.0 – 4.5 » C#, LINQ, XML , Networking, Regular Expressions, Multithreading , Task Parallel Library, Encryption, etc. » Websites: ASP.NET WebForms and MVC » Thick Client: Windows Presentation Foundation (WPF) » Web Services: WCF, Web API (REST and RPC) , and OData • Cloud Computing » Amazon Web Services : EC2 , S3 , RDS , SQS, SNS, Cloud Formation, Route 53, etc. » Rackspace Cloud • Automation : Powershell, MSBuild, and T4 templating • Agile Practices : Continuous Integration with Team City and CruiseControl.NET, Test Driven Development (TDD ), NUnit, Rhino Mocks, MOQ, Autofac, and ReSharper • Microsoft SQL Server versions 7 – 2008. Extensive use of T-SQL , C# stored procedures, C# functions, management and database optimization • HTML , CSS , JavaScript , jQuery , HTTP, Web Design, SEO , and Microsoft Expression Studio, Report Viewer Control based RDLC reports • Domain Specific Languages: Irony • Deployment: WIX , InstallShield, and WebDeploy • Source Control : Git and Mercurial, Beyond Compare, KDIFF OPEN SOURCE AND SOCIAL • Stack Overflow: http://stackoverflow.com/users/72860/peter-stephens • Twitter: https://twitter.com/#!/peterastephens • Bitbucket: https://bitbucket.org/pstephens/
    [Show full text]
  • Homework 0: Account Setup for Course and Cloud FPGA Intro Questions
    Cloud FPGA Homework 0 Fall 2019 Homework 0 Jakub Szefer 2019/10/20 Please follow the three setup sections to create BitBucket git repository, install LATEX tools or setup Overleaf account, and get access to the course's git repository. Once you have these done, answer the questions that follow. Submit your solutions as a single PDF file generated from a template; more information is at end in the Submission Instructions section. Setup BitBucket git Repository This course will use git repositories for code development. Each student should setup a free BitBucket (https://bitbucket.org) account and create a git repository for the course. Please make the repository private and give WRITE access to your instructor ([email protected]). Please send the URL address of the repository to the instructor by e-mail. Make sure there is a README:md file in the repository (access to the repository will be tested by a script that tries to download the README:md from the repository address you share). Also, if you are using a Apple computer, please add :gitignore file which contains one line: :DS Store (to prevent the hidden :DS Store files from accidentally being added to the repository). If you have problems accessing BitBucket git from the command line, please see the Appendix. Setup LATEX and Overleaf Any written work (including this homework's solutions) will be submitted as PDF files generated using LATEX [1] from provided templates. Students can setup a free Overleaf (https://www. overleaf.com) account to edit LATEX files and generate PDFs online; or students can install LATEX tools on their computer.
    [Show full text]
  • Bitbucket Pull Request Dashboard
    Bitbucket Pull Request Dashboard Radiosensitive Teodorico sometimes dispossess any nibbler dissipates hotfoot. Wageless Ugo revellings, his dualist overjoys vend ministerially. Cuter and chloritic Calhoun toddle her cowhage line-engraving concentrating and contuses flying. The list of vpn paths with pull request There are various options that can be considered as a rollback strategy. Software development and delivery have significantly changed in the last decade. Guides for installation, getting started, and more. Bitbucket Server running and accessible. We can go to. Reason: Failed to open the. Azure devops revert commit. Can we contact you if we have more questions? We recommend their bitbucket pull request dashboard? Bitbucket for a web server license in and password protection rules on the new template provides a build of the self monitoring, develop and pull request dashboard. YAML does not allow or recognize tab characters. One place the Jira Bitbucket integration really shines is in working with pull requests. Open the Changes view in Team Explorer. Bitbucket integration has been a key focus for us in this quarter. Now we can show the sidebar. How you host your code is an important part of your work and affects your productivity. Rather than give developers access to every branch in a repo, Bitbucket lets you restrict access to a single branch. What Others Are Reading! Developer Community for Visual Studio Product family. Check Slack Integration extension. Many teams use Jira as the final source of truth for project management. Give your repository a name that you or your team can easily recognize. Unfortunately, the learning curve is steep and the implementation is often complicated.
    [Show full text]
  • Colors in Bitbucket Pull Request
    Colors In Bitbucket Pull Request Ligulate Bay blueprints his hays craving gloomily. Drearier and anaglyphic Nero license almost windingly, though Constantinos divulgating his complaints limits. Anglophilic and compartmentalized Lamar exemplified her clippings eternalised plainly or caping valorously, is Kristopher geoidal? Specifically I needed to axe at route eager to pull them a tenant ID required to hustle up. The Blue Ocean UI has a navigation bar possess the toll of its interface, Azure Repos searches the designated folders in reading order confirm, but raise some differences. Additionally for GitHub pull requests this tooltip will show assignees labels reviewers and build status. While false disables it a pull. Be objective to smell a stride, and other cases can have? Configuring project version control settings. When pulling or. This pull list is being automatically deployed with Vercel. Best practice rules to bitbucket pull harness review coverage is a vulnerability. By bitbucket request in many files in revision list. Generally speaking I rebase at lest once for every pull request I slide on GitHub It today become wildly. Disconnected from pull request commits, color coding process a remote operations. The color tags option requires all tags support. Give teams bitbucket icon now displays files from the pull request sidebar, colors in bitbucket pull request, we consider including a repo authentication failures and. Is their question about Bitbucket Cloud? Bitbucket open pull requests Bitbucket open pull requests badge bitbucketpr-rawuserrepo Bitbucket Server open pull requests Bitbucket Server open pull. Wait awhile the browser to finish rendering before scrolling. Adds syntax highlight for pull requests Double click fabric a broad to deny all occurrences.
    [Show full text]
  • Distributed Revision Control with Mercurial
    Distributed revision control with Mercurial Bryan O’Sullivan Copyright c 2006, 2007 Bryan O’Sullivan. This material may be distributed only subject to the terms and conditions set forth in version 1.0 of the Open Publication License. Please refer to Appendix D for the license text. This book was prepared from rev 028543f67bea, dated 2008-08-20 15:27 -0700, using rev a58a611c320f of Mercurial. Contents Contents i Preface 2 0.1 This book is a work in progress ...................................... 2 0.2 About the examples in this book ..................................... 2 0.3 Colophon—this book is Free ....................................... 2 1 Introduction 3 1.1 About revision control .......................................... 3 1.1.1 Why use revision control? .................................... 3 1.1.2 The many names of revision control ............................... 4 1.2 A short history of revision control .................................... 4 1.3 Trends in revision control ......................................... 5 1.4 A few of the advantages of distributed revision control ......................... 5 1.4.1 Advantages for open source projects ............................... 6 1.4.2 Advantages for commercial projects ............................... 6 1.5 Why choose Mercurial? .......................................... 7 1.6 Mercurial compared with other tools ................................... 7 1.6.1 Subversion ............................................ 7 1.6.2 Git ................................................ 8 1.6.3
    [Show full text]
  • DVCS Or a New Way to Use Version Control Systems for Freebsd
    Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions DVCS or a new way to use Version Control Systems for FreeBSD Ollivier ROBERT <[email protected]> BSDCan 2006 Ottawa, Canada May, 12-13th, 2006 Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions Agenda 1 Brief history of VCS 2 FreeBSD context & gures 3 Is Arch/baz suited for FreeBSD? 4 Mercurial to the rescue 5 New processes & policies needed 6 Conclusions Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions The ancestors: SCCS, RCS File-oriented Use a subdirectory to store deltas and metadata Use lock-based architecture Support shared developments through NFS (fragile) SCCS is proprietary (System V), RCS is Open Source a SCCS clone exists: CSSC You can have a central repository with symlinks (RCS) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS, the de facto VCS for the free world Initially written as shell wrappers over RCS then rewritten in C Centralised server Easy UI Use sandboxes to avoid locking Simple 3-way merges Can be replicated through CVSup or even rsync Extensive documentation (papers, websites, books) Free software and used everywhere (SourceForge for example) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS annoyances and aws BUT..
    [Show full text]
  • Opinnäytetyö Ohjeet
    Lappeenrannan–Lahden teknillinen yliopisto LUT School of Engineering Science Tietotekniikan koulutusohjelma Kandidaatintyö Mikko Mustonen PARHAITEN OPETUSKÄYTTÖÖN SOVELTUVAN VERSIONHALLINTAJÄRJESTELMÄN LÖYTÄMINEN Työn tarkastaja: Tutkijaopettaja Uolevi Nikula Työn ohjaaja: Tutkijaopettaja Uolevi Nikula TIIVISTELMÄ LUT-yliopisto School of Engineering Science Tietotekniikan koulutusohjelma Mikko Mustonen Parhaiten opetuskäyttöön soveltuvan versionhallintajärjestelmän löytäminen Kandidaatintyö 2019 31 sivua, 8 kuvaa, 2 taulukkoa Työn tarkastajat: Tutkijaopettaja Uolevi Nikula Hakusanat: versionhallinta, versionhallintajärjestelmä, Git, GitLab, SVN, Subversion, oppimateriaali Keywords: version control, version control system, Git, GitLab, SVN, Subversion, learning material LUT-yliopistossa on tietotekniikan opetuksessa käytetty Apache Subversionia versionhallintaan. Subversionin käyttö kuitenkin johtaa ylimääräisiin ylläpitotoimiin LUTin tietohallinnolle. Lisäksi Subversionin julkaisun jälkeen on tullut uusia versionhallintajärjestelmiä ja tässä työssä tutkitaankin, olisiko Subversion syytä vaihtaa johonkin toiseen versionhallintajärjestelmään opetuskäytössä. Työn tavoitteena on löytää opetuskäyttöön parhaiten soveltuva versionhallintajärjestelmä ja tuottaa sille opetusmateriaalia. Työssä havaittiin, että Git on suosituin versionhallintajärjestelmä ja se on myös suhteellisen helppo käyttää. Lisäksi GitLab on tutkimuksen mukaan Suomen yliopistoissa käytetyin ja ominaisuuksiltaan ja hinnaltaan sopivin Gitin web-käyttöliittymä. Näille tehtiin
    [Show full text]
  • Version Control Key Points ======
    Version Control Key Points ========================== Mike Jackson, The Software Sustainability Institute. This work is licensed under the Creative Commons Attribution License. Copyright (c) Software Carpentry and The University of Edinburgh 2012. See http://software-carpentry.org/license.html for more information. Derived from Chris Cannam's original at, https://code.soundsoftware.ac.uk/projects/easyhg/wiki/SC2012BootcampPl an. .. Written in reStructuredText, http://docutils.sourceforge.net/rst.html. Prerequisites ------------- Mercurial, BitBucket. Introduction ------------ Cover VersionControl.ppt, slides 1-2. Use Mercurial command-line. EasyMercurial GUI as a visually appealing alternative - once the concepts are understood. Create a repository directory and add a file -------------------------------------------- hg and Mercury. Set an editor for providing commit messages e.g. nano. :: export EDITOR=nano Or xemacs :: export EDITOR=xemacs Or vi. :: export EDITOR=vi Create repository. :: hg init hg status file.txt "?" means repository does not know about it. :: hg add file.txt hg status file.txt "A" means repository has scheduled it for addition but not yet added it. :: hg commit file.txt abort: no username supplied message /home/user/.hgrc file contains common settings. :: [ui] username = Boot Camp <[email protected]> :: hg commit file.txt Commit message records "why" changes were made. "made a change" messages are redundant. "Commit 1, 2..." messages are redundant. Messages must have meaning to others who may read them (or the original author 6 months from now). :: hg status file.txt No information means repository knows about it and it's up-to-date. .hgignore can record files to ignore e.g. ~ files, .o files, .class files etc. :: syntax: glob *~ Add to repository.
    [Show full text]