Date Mar 10, 2023, 10:30 am – 12:00 pm Location RSVP on My PrincetonU to see location Audience Princeton students, graduate students, researchers, faculty, and staff Related link More details in My PrincetonU Details Princeton Hackathon 2024 Event Description Has your research code ever been broken or given wrong results after you or a collaborator changed something? Have you ever found yourself unable to reproduce some potentially published results? As researchers, we can apply a few basic principles of modern software development to our scientific software development process, both to mitigate the risk of such failures and to save time. One popular method, referred to as Continuous Integration/Continuous Development (CI/CD), involves pushing software changes to a shared repository often in order to avoid the issues that result from individual versions of code diverging over time. This talk introduces a simple and tested workflow for scientific software development that relies on Git along with GitHub Actions which is the automatic testing framework from GitHub. If you have never been to the Visualization Lab in Fine Hall then please watch one of these videos to learn where it is: https://mediacentral.princeton.edu/playlist/dedicated/1_5cq2g9fo/1_l32h… Workshop format: Presentation and hands-on Target audience: This talk is intended for a wide research audience. Some knowledge of Git fundamental concepts is required . Through examples, it will introduce a workflow based on basic concepts of Git, testing, and automatic testing. There will be a hands-on exercise using GitHub Actions. Knowledge prerequisites: Prior experience with version control using Git and Github will be necessary to follow the workshop. No prior experience with Jenkins or other automated testing tools is assumed. Hardware/software prerequisites: Overarching requirements for all PICSciE virtual workshops are listed at https://researchcomputing.princeton.edu/education/training/virtual-work…. Participants should ensure they have met these requirements in advance, as there will be no technical troubleshooting during the workshop itself. To participate in the hands-on exercise you will need a GitHub account as well as a Linux machine that you have ssh access to. The Adroit cluster would be a good candidate for this. Learning objectives: Attendees will leave with a clear idea of what can be done with CI and automated testing tools, and, hopefully, some motivation to do it. Participants will also be armed with concrete information on how to set up Github and GitHub Actions to implement the workflow introduced in the talk for their own software development at Princeton.