RMG Study Group Session I: Git, Sphinx, webRMG Connie Gao 9/20/2013 1.

Slides:



Advertisements
Similar presentations
Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
Advertisements

Quick Guide To Git & Wiki. Why We Need Version Control Group projects – Prevents loss of code when trying to merge versions – Allows Individual projects.
Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
1 Computing for Todays Lecture 22 Yumei Huo Fall 2006.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Getting Started with GIT. Basic Navigation cd means change directory cd.. moves you up a level cd dir_name moves you to the folder named dir_name A dot.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
A primer on version control at OTN
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
University of Sunderland CDM105 Session 5 Web Authoring Tools The past and present A history of web authoring tools and an overview of Macromedia Dreamweaver.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Version control Using Git Version control, using Git1.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
RMG Study Group Basics of Git Nathan Yee 2/23/
…using Git/Tortoise Git
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Git Fundamentals Rochelle Terman 13 January 2014.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
1 MSTE Visual SourceSafe For more information, see:
Intro to Git presented by Brian K. Vagnini Hosted by.
Planning the official release of RMG-Py issues to resolve and issues to put off Connie Gao 4/11/2014 RMG Study Group.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
CS 160 and CMPE/SE 131 Software Engineering February 16 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
XP Creating Web Pages with Microsoft Office
Getting Started with Git Presented by Jim Taylor Rooty Hollow, Owner Verizon Wireless, Senior Programmer/Analyst Git User for 6 years.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
Information Systems and Network Engineering Laboratory II
Source Control Systems
L – Modeling and Simulating Social Systems with MATLAB
Git and GitHub primer.
11 Version control (part 2)
L – Modeling and Simulating Social Systems with MATLAB
Version control, using Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Development and Deployment
Version Control Systems
Storing, Sending, and Tracking Files Recitation 2
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
The Big Picture
Getting Started with Git and Bitbucket
Using Github.
Git CS Fall 2018.
Version control with Git
Introduction to Version Control with Git
Git started with git: 2018 edition
Version Control with Git and GitHub
Version/revision control via git
1. GitHub.
Using GitHub for Papyrus Models Jessie Jewitt – OAM Technology Consulting/ ARM Inc. January 29th, 2018.
Presentation transcript:

RMG Study Group Session I: Git, Sphinx, webRMG Connie Gao 9/20/2013 1

Why the RMG Study Group?  Devoted to RMG-Py  Help new users learn how to set up RMG  Existing users and developers can discuss specifics in code  RMG-Py documentation gets written before each session! (except today’s session) 2

Today’s Topics  Git: the version control tool for RMG  Sphinx: tool for creating documentation  webRMG: online tools for working with RMG 3

Key URLs   Git repository of all RMG-Py code   Online version of the current RMG-Py documentation   Official RMG-Py documentation, thermodynamics and kinetics database browser, and web tools   Developmental version of rmg.mit.edu with latest features and potential bugsrmg.mit.edu  To use, add dev.rmg.mit.edu to hosts file in your operating systemdev.rmg.mit.edu 4

Git 5

 Git is a version control tool  Multiple users can edit multiple copies of code  Single user can create multiple branches for a single respository  Online detailed tutorial:   Where to find programs to help you use git:  6

Basic Git Workflow 1.Modify files in your working directory. 2.Stage files, adding snapshots of them to your staging area. 3.Make a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory. 7

Git file lifecycle Notes: If a particular version of a file is in the git directory, it’s considered committed. If it’s modified but has been added to the staging area, it is staged. If it was changed since it was checked out but has not been staged, it is modified. 8

Getting started: create a local repo Two common scenarios: (only do one of these) a)To clone an already existing repo to your current directory: $ git clone [local dir name] This w ill create a directory named local dir name, containing a working copy of the files from the repo, and a.git directory (used to hold the staging area and your actual repo) b)To create a Git repo in your current directory: $ git init This will create a.git directory in your current directory. Then you can commit files in that directory into the repo: $ git add file1.java $ git commit –m “initial project version ” 9

Common Git commands 10

You can do all of this using Git-cola: a powerful GUI interface Commit or revert specific lines. Stage files and write commit messages graphically. Amend commits. 11

Git-cola: a powerful GUI nterface Visualize past commit history and repository branches. (Great for tracking specific code changes.) Available for Windows, Mac, and Linux! 12

Steps for getting started with git and RMG-Py 1.Clone the RMG-Py git repository onto your local directory (or onto a server such as Pharos which has all the RMG-Py dependencies as well as git preinstalled) 2.After making changes to code, test to ensure nothing is broken 3.Run git pull official master to pull in latest official commits 4.Stage your modified files and make a commit of your changes, with a useful commit message 5.Push the commit to your github repository Note: Post issues and bugs in the code to the RMG-Py issues page on github so others can help you address your problem

14

Sphinx  Tool for creating intelligent and beautiful documentation  Output formats in both HTML and LaTeX PDF  Uses reStructuredText as its markup language 15

RMG-Py documentation  Located in RMG-Py/documentation folder  How to build:  Run ‘make documentation’ in parent RMG-Py folder will build the HTML pages  Or, go to documentation folder and run ‘make html’ to make HTML pages or ‘make latexpdf’ to create the pdf version of the documentation  Edit the files inside the documentation/source folder 16

reStructuredText Basics  Primer for reS:   Example of Sphinx markup: 17

Example markup converted to HTML: 18

Using python function references in documentation  Function comments can be imported to Sphinx documentation automatically 19 ORIGINAL CODE RMG-Py/rmgpy/statmech/vibration.pyx

20 DOCUMENTATION SOURCE RMG-Py/documentation/source/ reference/statmech/harmonicoscillator.rst This line pulls original function docstring into documentation automatically … but you can append on more information or equations than the docstring by writing additional documentation here

21 DOCUMENTATION HTML PAGE RMG-Py/documentation/build/html/ reference/statmech/harmonicoscillator.rst This page has the combined python docstring information as well as the extra documentation you added NOTE: The official github documentation pages for RMG-Py automatically update when changes are made to the code docstrings, so you don’t have to do any extra work

Steps for writing RMG-Py documentation 1.Create and edit new documentation pages (.rst files) locally. Use code references where appropriate to save time. 2.Build html pages locally to preview that the pages are satisfactory in layout. 3.Use git to commit the source.rst files that you modified to the RMG-Py github repository. 4.You are done! Official RMG-Py documentation pages will be updated automatically. 22

23

webRMG  URLs:  Official version:  Development (newer) version:  Make RMG’s databases more transparent, accessible, and modifiable  Web tools for visualizing kinetics and reactions more easily  Built on a Django python framework which queries the RMG-Py code itself! 24

Features 25

 Editing or adding new rates or thermo data to the database  Edit source online with account  Changes make an automatic commit on github  Commit gets reviewed by Green Group members before being published to official  Export database for RMG-Java  Converts RMG-Py database to RMG-Java database format  Exports current version of database on website in.zip or.tar.gz format 26

 Use any identifier and convert it to an adjacency list used in RMG  SMILES  InChI  Common chemical names  Preview molecule while editing adjacency list  View molecule data:  Molecular weight, identifiers, thermo 27

 Compare kinetics in model with kinetics found in RMG’s databases  Displays matching reaction library results, rate estimates from RMG-Java and RMG-Py, identifies rate rule contributions, links to sources  Toolbar for searching NIST database automatically fills in reactant and product fields  Compare rates at a given T 28

 Model visualization (RMG-Py and Java friendly)  Visualize a model generated from RMG using its chemkin file and RMG dictionary on HTML page  Clicking any reaction link searches RMG database for reaction kinetics  Clicking on any molecule’s image gives additional info and link to thermochemistry  Model comparison (RMG-Py and Java friendly)  Compare two models against each other  Identify common vs. unique species and reactions  Identify similarities or differences in thermo and kinetics 29

 Flux diagram generation (RMG-Py and Java friendly)  Create video of a reaction network using RMG condition file, chemkin file, and RMG dictionary  Can optionally use chemkin output file for a non- isothermal simulation (may currently be broken)  Populate Reactions (RMG-Py only)  Generate a list of all reactions occurring given a set of initial species listed in a condition file (produces the set of edge reactions in a simulation) 30

 Plot forward and reverse kinetics (RMG-Py and Java friendly)  Use chemkin file and RMG dictionary (optional) to generate plots of forward and reverse reaction kinetics  Create RMG-Java Kinetics Library  Convert a chemkin file and RMG dictionary into a RMG-Java kinetics library  Merge models  Generate merged chemkin file and RMG dictionary for 2 models 31

 Create Input File (RMG-Py only) (may currently be broken)  Use web form to generate input file for a RMG job or modify an existing input file  More user friendly and less error prone than working with source code  Provides filled-in values as recommendations for advanced options in the input file 32