<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Resources on SDL: Software Development Lab</title><link>https://sdl-56e997.gitlab.io/resources/</link><description>Recent content in Resources on SDL: Software Development Lab</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://sdl-56e997.gitlab.io/resources/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://sdl-56e997.gitlab.io/resources/best-practices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sdl-56e997.gitlab.io/resources/best-practices/</guid><description>&lt;h1 id="best-practices-for-sdl"&gt;Best Practices for &lt;a href="./"&gt;SDL&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Teams should adhere to the following practices, but may vary from them
after consultation with the instructor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitLab Configuration:
&lt;ul&gt;
&lt;li&gt;All students on each team should have Developer role. We can give
them Maintainer role temporarily when required. Set the expiration
date to July 1 or February 1, as appropriate.&lt;/li&gt;
&lt;li&gt;Disallow pushes to the main branch. This is ensured by going to
&lt;strong&gt;Settings&lt;/strong&gt;, &lt;strong&gt;Repository&lt;/strong&gt;, &lt;strong&gt;Branch rules&lt;/strong&gt;, &lt;strong&gt;view
details&lt;/strong&gt;, &lt;strong&gt;Manage in protected branches&lt;/strong&gt;, and select &lt;strong&gt;No
one&lt;/strong&gt; for &lt;strong&gt;Allowed to push and merge&lt;/strong&gt;. &lt;strong&gt;Allowed to merge&lt;/strong&gt;
will be set to &lt;strong&gt;Maintainers&lt;/strong&gt; (or &lt;strong&gt;Maintainers +
Developers&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;Disallow squash commits: &lt;strong&gt;Settings&lt;/strong&gt;, &lt;strong&gt;Merge requests&lt;/strong&gt;,
scroll down to &lt;strong&gt;Squash commits when merging&lt;/strong&gt;, set to &lt;strong&gt;Do not
allow&lt;/strong&gt;. Save the changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Git standards (for all repositories):
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Configure your git setup so check-ins and check-outs are &lt;strong&gt;as-is&lt;/strong&gt;.
This means git will &lt;em&gt;not&lt;/em&gt; convert line endings between Unix/Window/Mac
formats. The conversions are not needed since all modern editors can
handle different formats. Allowing git often breaks deployment.
You can set this by editing your &lt;code&gt;.gitconfig&lt;/code&gt; file to include the text&lt;/p&gt;</description></item><item><title/><link>https://sdl-56e997.gitlab.io/resources/ci/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sdl-56e997.gitlab.io/resources/ci/</guid><description>&lt;p&gt;Use this &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; as a starting point for your CI system:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;image: docker:latest
services:
- docker:dind
stages:
- build
build:
stage: build
script:
- docker build .
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The first line says you are using the latest version of Docker; once things are working, specify the version for extra robustness. The &lt;code&gt;build&lt;/code&gt; entry specifies how to do the build, which is just executing the &lt;code&gt;docker build .&lt;/code&gt; command you are used to using in Ubuntu. The &lt;code&gt;stages&lt;/code&gt; entry just specifies doing the &lt;code&gt;build&lt;/code&gt; stage; one could add additional stages for things like continuous delivery or to build multiple versions of your project.&lt;/p&gt;</description></item><item><title/><link>https://sdl-56e997.gitlab.io/resources/ubuntu-with-virtual-box/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sdl-56e997.gitlab.io/resources/ubuntu-with-virtual-box/</guid><description>&lt;h2 id="configuring-virtualbox-with-ubuntu"&gt;Configuring VirtualBox with Ubuntu&lt;/h2&gt;
&lt;h3 id="if-useful-also-covers-using-docker"&gt;(If useful, also covers using Docker)&lt;/h3&gt;
&lt;p&gt;This will enable teams to develop on Linux on their laptops, avoiding
problems with connecting to services over a network. Many teams will stage
their system on a remote server, but enabling local access&lt;/p&gt;</description></item></channel></rss>