<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Git &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Mon, 20 May 2024 14:09:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Using Xojo and GitHub</title>
		<link>https://blog.xojo.com/2024/04/02/using-xojo-and-github/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 02 Apr 2024 17:26:24 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=12833</guid>

					<description><![CDATA[Now that Xojo Lite includes support for saving projects in version control format, it seems like a good time to revisit how you can use Xojo with GitHub, the popular online Git hosting service.]]></description>
										<content:encoded><![CDATA[
<p>Now that Xojo Lite includes support for saving projects in version control format, it seems like a good time to revisit how you can use Xojo with <a href="https://github.com">GitHub</a>, the popular online Git hosting service.</p>



<h2 class="wp-block-heading">What are Git and GitHub?</h2>



<p><a href="https://en.wikipedia.org/wiki/Git">Git</a> is an open-source version control system, also known as a source control system. Created by Linus Torvalds in 2005, it is now the most popular version control system, supplanting <a href="https://en.wikipedia.org/wiki/Apache_Subversion">Subversion</a> a while ago.</p>



<p>GitHub is an online Git hosting service, now owned by Microsoft. GitHub provides additional features beyond just Git hosting, but for this post we will focus on its Git hosting. GitHub is free to use for both public and private repositories.</p>



<p>A repository is essentially a place to store a project. Public repositories are great ways to share open-source projects. Others can view and download the source code. Private repositories are only visible to you and are great for your own internal projects.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Git is a distributed version control system, which just means that the source code can be versioned locally and on the server, only synchronizing when necessary. For simplicity it is common to keep both in sync, however. Older version control systems such as Subversion were server-based and versions were only ever kept on the server. A distributed version control system is slightly more complex, but it does have the advantage of making it easier to work offline.</p>
</blockquote>



<p>A version control system tracks changes made to text files, something that is incredibly useful when it comes to source code. Tracking changes is a very common task that is needed while programming. You may have seen people save their projects as MyProject1, MyProject2, MyProjectNewVersion, etc. That is a rudimentary way of trying to ensure you don&#8217;t lose changes as you update your code. With version control and the Xojo version control project file format you get a much more flexible technique.</p>



<p>When you save your project using the Xojo version control project file format (called Xojo Project) in the file selector, each project item is saved as its own file on the drive. And each of these files is plain text &#8212; you could view them using a text editor if you wanted.</p>



<p>You might be thinking: &#8220;I&#8217;m just a single developer, I don&#8217;t need this extra complexity.&#8221; But version control systems are not just for multi-person teams. Sure, version control is a great way to make sure that different team members don&#8217;t make different changes to the same code.  But version tracking is useful to everyone. Even as a single developer, being able to review previous changes, and revert changes if they don&#8217;t work out can be a lifesaver. It removes any &#8220;fear of breaking things&#8221; from your workflow. Plus, having your source code on a remote server (GitHub) can also function as one of your source code backups.</p>



<h2 class="wp-block-heading">A Quick Example</h2>



<p>To give you an example of how this works, consider a single text file that exists in Git: ReadMe.txt</p>



<p>Initially it contains just this text:</p>



<pre class="wp-block-code"><code>Hello!</code></pre>



<p>You pull down the file to your computer (I&#8217;ll define Git terms like these below) to work on it. Opening the file in a text editor, you change its text to this and save:</p>



<pre class="wp-block-code"><code>Hello, Xojo!</code></pre>



<p>Now the file on your computer contains that text. This is called the working copy. The file in the repository still has the text &#8220;Hello!&#8221;. Now you can do a couple useful things.</p>



<p>You can ask to see the differences between the file in the repository and the one in the working copy. When doing so, most tools will highlight the line that changed, showing the repository contents on the left and the working copy contents on the right. This is a wonderful way to review changes made to code.</p>



<p>The other thing you can do is commit the change to the repository. This adds this file to the repository and makes it the latest version. In Git you&#8217;ll then be able to see that this file has two versions and you&#8217;ll be able to see what the file looked like for each version.</p>



<p>These two things mean that you will never again lose any work. Anytime you make a change to your code that you want to save as a version in the repository, you commit it. You don&#8217;t want to commit after every change as that is too granular and will be hard to manage, but it means you can safely make a bunch of big changes to something and still be able to go back and review what the code looked like previously.</p>



<p>The other useful thing you can do is revert changes. If, after saving the file with &#8220;Hello, Xojo!&#8221; you realize that was a mistake, you can go back to the previous version by choosing to revert the file. This discards the local working copy and pulls down the most recent revision from the repository.</p>



<p>I realize that this might all seem rather different and confusing, but once you do this on a couple small projects you&#8217;ll get the hang of it and you will never want to go back to using MyProject1, MyProject2 again!</p>



<h2 class="wp-block-heading">Terminology</h2>



<p><strong>Repository</strong>: This is essentially a place to store a group of files, which for our purposes will be a Xojo project saved in the version control file format (Xojo Project).</p>



<p><strong>Clone</strong>: Copies the repository to your computer so you can work on it</p>



<p><strong>Fetch</strong>: Updates the local repository with any changes that are stored on the server</p>



<p><strong>Pull</strong>: Similar to fetch, except that it also copies the changes into the working copy</p>



<p><strong>Commit</strong>: Add the changed file to the repository as a new version</p>



<p><strong>Push</strong>: Pushes the committed file to the server (GitHub). Often this is done as a single step: Commit and Push.</p>



<p><strong>Working Copy</strong>: Your local copy of the repository and the file</p>



<h2 class="wp-block-heading">General GitHub Usage</h2>



<p>With Xojo, the general workflow you will use is:</p>



<ol class="wp-block-list">
<li>Create repository on GitHub for the project.</li>



<li>Pull it down to a folder on your computer.</li>



<li>Create a Xojo project.</li>



<li>Save it in Xojo Project (text) format into the above folder.</li>



<li>Commit and Push it to GitHub.</li>



<li>Make additional changes to the Xojo project.</li>



<li>Commit and Push to GitHub as necessary.</li>
</ol>



<h2 class="wp-block-heading">Create a GitHub Account</h2>



<p>If you don’t already have a GitHub account, you’ll need to create one. Head on over to the <a href="https://github.com/signup">sign up page</a> to start the process:</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="346" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-2-1024x346.png" alt="" class="wp-image-12838" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-2-1024x346.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-2-300x101.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-2-768x259.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-2.png 1292w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Create a Repository</h2>



<p>Now that you have a GitHub account, you’ll want to go to your GitHub home page and click the “New Repository” button.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="156" height="80" src="https://blog.xojo.com/wp-content/uploads/2024/03/CleanShot-2024-03-28-at-12.59.10@2x.png" alt="" class="wp-image-12839"/></figure>



<p>As mentioned above, a repository is essentially where your project is stored. You’ll typically want a separate repository for each project. This is what the new repository form looks like:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="860" height="1024" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-4-860x1024.png" alt="" class="wp-image-12841" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-4-860x1024.png 860w, https://blog.xojo.com/wp-content/uploads/2024/03/image-4-252x300.png 252w, https://blog.xojo.com/wp-content/uploads/2024/03/image-4-768x914.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-4-1291x1536.png 1291w, https://blog.xojo.com/wp-content/uploads/2024/03/image-4.png 1504w" sizes="(max-width: 860px) 100vw, 860px" /></figure>



<p>For open-source projects you&#8217;ll want to make sure &#8220;Public&#8221; is selected as it&#8217;s not really open-source if it is not public. For a public repository, be sure to come up with a catchy “repository name” and always include a description. Choose &#8220;Private&#8221; for internal projects.</p>



<p>I always check “Add a README file”, which adds an empty README file to the repository. You can update it later, but it is where you’ll briefly describe the project and how to use it (using <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a>). The README is shown by default when you go to the repository in a web browser.</p>



<p>You should also select “Xojo” for the gitignore template (click the dropdown and type &#8220;xojo&#8221;). This identifies the project as using the Xojo programming language, which helps with searches and also marks the “uistate” file (which contains user-specific UI settings, such as window sizes and positions) so that it is not included in the project.</p>



<p>Last is the license. For most public open-source projects, I recommend the <a href="https://en.wikipedia.org/wiki/MIT_License">MIT License</a>, which essentially allows anyone to use your code however they want. For private projects, you can leave it at &#8220;None&#8221;.</p>



<p>Click the Create Repository button to create the repository.</p>



<h2 class="wp-block-heading">Clone the Repository to your Computer</h2>



<p>With the repository created, you can view it on the GitHub website for you account:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="480" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-5-1024x480.png" alt="" class="wp-image-12842" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-5-1024x480.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-5-300x141.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-5-768x360.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-5-1536x720.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-5-2048x960.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>From here you&#8217;ll be able to see the files in the repository, along with other information.</p>



<p>You are now ready to &#8220;clone&#8221; the repository to your computer. This copies the repository files to a folder on your computer so you can modify its files. Of course, the only files in the repository will be LICENSE and the empty README.md, but it is still necessary to do the clone so that you can create the folder where you will then add your Xojo code.</p>



<p>In order to clone, you’ll want to use a Git client application. There are many to choose from, but two free ones are the official&nbsp;<a href="https://desktop.github.com">GitHub Desktop</a>&nbsp;and&nbsp;<a href="https://www.sourcetreeapp.com">Atlassian&nbsp;SourceTree</a>. GitHub Desktop is simpler so that is the one I’ll show here.</p>



<p>Download GitHub Desktop:&nbsp;<a href="https://desktop.github.com">https://desktop.github.com</a></p>



<p>Start GitHub Desktop and click “Sign into GitHub.com”.</p>



<p>On the Configure Git page, enter the name and email you want to use to identify your commits.</p>



<p>Click Finish on the next page to show the main screen where you have the option of creating new repositories or cloning a repository. Since we already created a repository online in the previous section, you want to select “Clone a Repository” (you can also choose this from the File menu). In the list, choose the repository you created above, choose your local folder location (Choose…) and click Clone.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="988" height="976" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-8.png" alt="" class="wp-image-12845" style="width:437px;height:auto" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-8.png 988w, https://blog.xojo.com/wp-content/uploads/2024/03/image-8-300x296.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-8-768x759.png 768w" sizes="auto, (max-width: 988px) 100vw, 988px" /></figure>



<p>You now have a folder on your disk where you can add your Xojo project. This is what the repository looks like in GitHub Desktop:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="716" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-9-1024x716.png" alt="" class="wp-image-12846" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-9-1024x716.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-9-300x210.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-9-768x537.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-9-1536x1074.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-9-2048x1432.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><em>Note: If you are using another Git client, you will choose its “clone a repository from URL” feature and then provide the URL shown in the “Clone or Download” button on the repository page.</em></p>



<h2 class="wp-block-heading">Add Your Xojo Project Code</h2>



<p>Start Xojo and open the project you want for the repository you cloned (or you can just create a new project). Click “Save As”, make sure the Format is “Xojo Project” and choose the folder you created when you cloned the repository.</p>



<p>Go back to GitHub Desktop and you’ll now see all the Xojo files appearing in the list as “changed files”. (For this test I used a Xojo SQLiteExample.)</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="716" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-11-1024x716.png" alt="" class="wp-image-12848" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-11-1024x716.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-11-300x210.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-11-768x537.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-11-1536x1074.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-11-2048x1432.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>You now need to “Commit” these changes. By default they are all selected/checked in GitHub Desktop so you can enter a brief summary and description (for the first commit, often “Initial commit.” is used, but I used &#8220;Initial Xojo commit.&#8221;) and then click the “Commit to main” button.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Each time you commit you want to be sure to type a clear summary and description of the changes. This will be helpful later when you are reviewing prior commits.</p>
</blockquote>



<p>This marked the files as committed in your local repository, which is needed before you can push the changes up to the online repository. Generally speaking you want to commit things after you have made changes that you want to track. You don’t need to immediately push the changes up to the server (online repository) each time, however, people often do as it is simpler. Some Git clients even offer a single button or command to commit and push in one step.</p>



<p>For this initial commit you definitely want to push the commit to the server, so click the button in the toolbar that says “Push origin”. This pushes the commit to the origin, which is the GitHub repository in this case.</p>



<p>If you now go back to the GitHub repository online and refresh the page you’ll now see the files have been committed:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="663" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-12-1024x663.png" alt="" class="wp-image-12849" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-12-1024x663.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-12-300x194.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-12-768x497.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-12-1536x994.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-12-2048x1325.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Sharing Your Public Project</h2>



<p>If you created a public repository then it is now available on GitHub for anyone to use. People can find it by searching or you can share the URL (perhaps in the <a href="https://forum.xojo.com">Xojo Forum</a>).</p>



<p>Since I <a href="https://github.com/xojo/MyTestProject">published a public project</a>, anyone can use it. This means that they can clone it and push changes to your project as &#8220;pull requests&#8221;. A pull request is a change that a user has made that they would also like you to apply to your project. Since this is your project, others cannot directly change it without you adding them as contributors. However, you can review these pull requests and choose to pull and merge the change into your project if you want. Or you can reject the pull request &#8212; it&#8217;s all up to you since it&#8217;s your project.</p>



<h2 class="wp-block-heading">Changing and Updating Your Project</h2>



<p>You’ll likely be continuing to change your project to fix bugs and add features. Each change you make shows up in GitHub Desktop where you can commit it and then push it to the server.</p>



<p>As an example, go back to Xojo and make a change to the project. I added some comments to the AddTeamRow method. After saving, the changes are now visible in GitHub Desktop:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="716" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-14-1024x716.png" alt="" class="wp-image-12851" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-14-1024x716.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-14-300x210.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-14-768x537.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-14-1536x1074.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-14-2048x1432.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>You can see the one file that was changed, SQLiteWindow, and the changes (or diff) is shown in the viewer. Here you can see the changes by the blue highlighted lines in the gutter. The first change indicates that line 386 was removed and replaced, with the change noting that &#8220;Please&#8221; was added.</p>



<p>The next two changes indicate that new lines were added to the code.</p>



<p>It&#8217;s always good to review code like this before you commit it to make sure the changes are what you expect.</p>



<p>You can now Commit this change (always add Summary and Description text so you know the reason for the change!) and then Push it to the server (Push origin).</p>



<h2 class="wp-block-heading">Discarding Changes</h2>



<p>Say you&#8217;ve made changes to your Xojo project, but realize you&#8217;ve really messed things up and want to go back to the way the code was. For example, say I&#8217;ve accidentally deleted a bunch of code in the ShowData method and saved the project. In GitHub Desktop, it would look like this:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="716" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-15-1024x716.png" alt="" class="wp-image-12852" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-15-1024x716.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-15-300x210.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-15-768x537.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-15-1536x1074.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-15-2048x1432.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>You can see the big red area indicating the code that was removed.</p>



<p>To discard this change, I can right-click on SQLiteWindow in GitHub Desktop and select Discard Changes. This pops up a confirmation dialog and clicking Discard Changes will restore the file to its previous version, which is the version of the file that was last committed to the repository.</p>



<p>After doing this, you will need to close the project in Xojo and then re-open it so that it can refresh its internal project structures to reflect the discarded changes. After doing that, you can go back to the ShowData method to see that the code is restored.</p>



<p>This capability is a big reason why version control is also incredibly useful for solo developers.</p>



<h2 class="wp-block-heading">Using or Cloning Other Repositories</h2>



<p>Don’t forget that you can also use other people’s public repositories. To do so you’ll want to click the “Clone or Download” button on the repository page.</p>



<p>For simple usage, where you just want to grab the current version of the repository because you don&#8217;t intend to change anything, you can then click the Download ZIP button. Once downloaded, unzip the file and then open the project in Xojo where you can use it or copy/paste it into your own projects (review the license agreement before you use projects, of course).</p>



<p>You’ll want to clone a project when you want to manage it using GitHub Desktop (or your GitHub client of choice). This allows you to fetch/pull updates from the online repository and also allows you to make your own changes and push them up to the server where the repository owner will get them as pull requests, as described above.</p>



<h2 class="wp-block-heading">Change Your Default Project Format</h2>



<p>You might find it worthwhile to change your default project format to be the version control format. This way it will always be selected by default when you save. You can change this in Xojo&#8217;s General Settings:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://blog.xojo.com/wp-content/uploads/2024/03/image-16-1024x656.png" alt="" class="wp-image-12853" srcset="https://blog.xojo.com/wp-content/uploads/2024/03/image-16-1024x656.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/03/image-16-300x192.png 300w, https://blog.xojo.com/wp-content/uploads/2024/03/image-16-768x492.png 768w, https://blog.xojo.com/wp-content/uploads/2024/03/image-16-1536x984.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/03/image-16.png 1624w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Pro Tip: When saving a project for the first time in version control format, it is always a good idea to save into a newly created folder. This ensures that all your files will be neatly contained in one place and won&#8217;t accidentally override something else that may have been in the folder.</p>
</blockquote>



<h2 class="wp-block-heading">Git Going</h2>



<p>If you&#8217;ve created Xojo projects in public repositories on GitHub, be sure to share them in the <a href="https://forum.xojo.com/">forum</a>!</p>



<p>This post just scratches the surface of what GitHub does and also only touches lightly on Git and the concept of source control in general. If you’d like to use Git for source control, but would prefer an alternative to GitHub you might also want to check out&nbsp;<a href="https://bitbucket.org">Atlassian BitBucket</a>&nbsp;which also offers free Git hosting for both private and public repositories.</p>



<p><em>Paul learned to program in BASIC at age 13 and has programmed in more languages than he remembers, with Xojo being an obvious favorite. When not working on Xojo, you can find him talking about retrocomputing at <a href="https://goto10.substack.com" target="_blank" rel="noreferrer noopener">Goto 10</a> and </em>on Mastodon @lefebvre@hachyderm.io.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Private Repositories are Now Free on GitHub</title>
		<link>https://blog.xojo.com/2019/01/09/private-repositories-are-now-free-on-github/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Wed, 09 Jan 2019 18:11:17 +0000</pubDate>
				<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=5295</guid>

					<description><![CDATA[GitHub just announced that private repositories are now free. GitHub has been a great source for Xojo open-source projects, so being able to also use it for private repositories is a nice bonus.]]></description>
										<content:encoded><![CDATA[<p>I guess the <a href="https://blogs.microsoft.com/blog/2018/10/26/microsoft-completes-github-acquisition/">Microsoft acquisition</a> is leading to some benefits. GitHub just announced that <a href="https://blog.github.com/2019-01-07-new-year-new-github/">private repositories are now free</a>. GitHub has been a great source for <a href="https://github.com/search?q=xojo">Xojo open-source projects</a>, so being able to also use it for private repositories is a nice bonus.</p>
<p>Other options for using Git include <a href="https://bitbucket.org/product">BitBucket</a> and <a href="https://about.gitlab.com">GitLab</a>.</p>
<p>Learn more about how to use Xojo with source control systems like Git here:</p>
<ul>
<li><a href="https://documentation.xojo.com/topics/code_management/using_source_control_with_xojo_projects.html">User Guide: Source Control</a></li>
</ul>
<p>Source control systems are useful to single developers and teams. They provide a way to compare your changes, revert to prior code (so you&#8217;re not afraid to make changes and can try new things) and can even function as one of your off-site backups.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Start an Open-source Project on GitHub</title>
		<link>https://blog.xojo.com/2018/01/17/start-an-open-source-project-on-github/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Wed, 17 Jan 2018 07:45:43 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=3703</guid>

					<description><![CDATA[A short tutorial on how to use GitHub. Learn to upload your own projects and share. Expand your development with Github projects and share what you've built. There are about 80 Xojo-related open-source projects that I am tracking on the Xojo Dev Center: Open-Source Projects. ]]></description>
										<content:encoded><![CDATA[<p>There are about 80 Xojo-related open-source projects that I am tracking on the <a href="http://developer.xojo.com/community-open-source-projects">Xojo Dev Center: Open-Source Projects</a>. I often have people ask me how they can make their own cool libraries and projects available on GitHub, so here&#8217;s a short tutorial.</p>
<p><span id="more-3703"></span></p>
<h2>Create a GitHub Account</h2>
<p>If you don&#8217;t already have a <a href="https://github.com">GitHub account</a>, you&#8217;ll need to create one. <a href="https://github.com">GitHub</a> is the most popular place for hosting open-source projects and it is entirely free. As its name suggests, GitHub uses the Git source control system for storing the project source and managing updates. It also has a built-in wiki for documentation and an issue tracker.</p>
<p>The way GitHub works is that you&#8217;ll add your project, which is then available for anyone to download and use. In addition, others can submit changes to your project in the form of &#8220;pull requests&#8221;. These are perhaps enhancements or bug fixes that you can review and choose to merge into the project if you want.</p>
<h2>Create Repository</h2>
<p>Now that you have a GitHub account, you&#8217;ll want to go to your GitHub home page and click the &#8220;New Repository&#8221; button. A repository is essentially where your project is stored. You&#8217;ll want a separate repository for each project. This is what the new repository form looks like:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3705" src="https://blog.xojo.com/wp-content/uploads/2018/01/2018-01-11_15-42-49.png" alt="" width="746" height="620" /></p>
<p>Be sure to come up with a catchy &#8220;repository name&#8221; and always include a description. You&#8217;ll want to leave &#8220;Public&#8221; selected as it&#8217;s not really open-source if it&#8217;s not public &#8211; and you actually have to pay to host private repositories on GitHub.</p>
<p>I always check &#8220;Initialize this repository with a README&#8221;, which adds an empty README file. This is where you&#8217;ll briefly describe the project and how to use it (using Markdown).</p>
<p>You should also select &#8220;Xojo&#8221; for the gitignore setting. This identifies the project as using the Xojo programming language, which helps with searches and also marks the &#8220;uistate&#8221; file so that it is not included in the project.</p>
<p>Lastly, you&#8217;ll need to choose a license. For most projects, I recommend the MIT License, which essentially allows anyone to use your code however they want.</p>
<p>Click the Create Repository button to create the repository.</p>
<h2>Clone the Repository to your Computer</h2>
<p>Now that the repository is created on GitHub, you&#8217;ll want to &#8220;clone&#8221; it to your computer. This copies the repository files to a folder on your computer to you can modify its files. Of course, the only files in the repository will be LICENSE and the empty README.md, but it is still necessary to do the clone so that you can create the folder where you will then add your Xojo code.</p>
<p>In order to clone, you&#8217;ll want to use a Git client application. There are many to choose from, but two free ones are the official <a href="https://desktop.github.com">GitHub Desktop</a> and <a href="https://www.sourcetreeapp.com">Atlassian SourceTree</a>. Personally I prefer SourceTree, but the GitHub Desktop is a bit simpler so that is the one I&#8217;ll show here.</p>
<p>Download GitHub Desktop: <a href="https://desktop.github.com">https://desktop.github.com</a></p>
<p>Start GitHub Desktop and click &#8220;Sign into GitHub.com&#8221;.</p>
<p>On the Configure Git page, enter the name and email you want to use to identify your commits.</p>
<p>Click Finish on the next page to show the main screen:</p>
<p>On this screen you have the option of creating new repositories or cloning a repository. Since we already created a repository online in the previous section, you want to select &#8220;Clone a Repository&#8221;. In the list, choose the repository you created above, choose your local folder location (Choose&#8230;) and click Clone.</p>
<p>You now have a folder on your disk where you can add your Xojo project.</p>
<p><em>Note: If you are using another client, you will choose its &#8220;clone a repository from URL&#8221; feature and then provide the URL shown in the &#8220;Clone or Download&#8221; button on the repository page.</em></p>
<h2>Add Your Xojo Project Code</h2>
<p>Start Xojo and open the project you want for the repository you cloned. Click &#8220;Save As&#8221;, make sure the Format is &#8220;Xojo Project&#8221; and choose the folder you created when you did the checkout. You&#8217;ll want to use the &#8220;Text Project&#8221; format as that is what works best with Git because it allows people to view source online and makes it possible to precisely track changes.</p>
<p><em>Note: Any Xojo edition can open projects in Xojo Project format, but the Xojo Free edition and Xojo Lite edition cannot save in Xojo Project format. <a href="mailto:hello@xojo.com">Contact us</a> if you&#8217;d like to upgrade.</em></p>
<p>Go back to GitHub Desktop and you&#8217;ll now see all the Xojo files appearing in the list as &#8220;changed files&#8221;. (For my test I used Examples/Database/SQLite/SQLiteExample.)</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3711" src="https://blog.xojo.com/wp-content/uploads/2018/01/2018-01-12_10-48-31.png" alt="" width="960" height="660" /></p>
<p>You now need to &#8220;Commit&#8221; these changes. By default they are all checked so you can enter a brief summary (for the first commit, often &#8220;Initial Commit.&#8221; is used) and then click the &#8220;Commit to master&#8221; button.</p>
<p>This marked the files as committed in your local repository, which is needed before you can push the changes up to the online repository. Generally speaking you want to commit things after you have made changes that you want to track. You don&#8217;t need to immediately push the changes up to the server (online repository) each time, however.</p>
<p>But for this initial commit you do want to push it out to the server, so click the button in the toolbar that says &#8220;Push origin&#8221;.</p>
<p>If you go back to the GitHub repository online and refresh the page you&#8217;ll now see the files have been committed:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3714" src="https://blog.xojo.com/wp-content/uploads/2018/01/2018-01-12_10-55-20.png" alt="" width="1007" height="894" /></p>
<h2>Sharing Your Project</h2>
<p>Your project is now publicly available on GitHub for you to share with the world. All you need to do now is give people the URL! Definitely at least share the URL with me so I can add it to the <a href="http://developer.xojo.com/community-open-source-projects">Open Source Projects page</a> in the Xojo Dev Center.</p>
<p>However, one other thing you should do on the project is click the &#8220;Add topics&#8221; link under the project description near the top of the page and add some tags. At the very least, add a tag for &#8220;Xojo&#8221;, but also add tags for whatever other technologies are relevant to your project. This will make it much easier for people to find your project when they search.</p>
<h2>Changing and Updating Your Project</h2>
<p>You&#8217;ll likely be continuing to change your project to fix bugs and add features. Each change you make shows up in GitHub Desktop where you can commit it and then push it to the server.</p>
<p>As an example, you should also make sure you update the README.md file to actually have a bit more description of your project and how people can use it. On your computer, open README.md in a text editor (or even better, a Markdown editor if you have one &#8212; I use Markdown Pro). You can learn more about Markdown here: <a href="https://guides.github.com/features/mastering-markdown/">GitHub Markdown Guide</a></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3716" src="https://blog.xojo.com/wp-content/uploads/2018/01/2018-01-12_11-05-36.png" alt="" width="892" height="572" /></p>
<p>Save the file and the go to GitHub Desktop to see that it shows as changed. With the file selected in GitHub desktop you can see that it shows you what has changed with the new content identified. This also works with source code and is why you want to use the Xojo Project text file format &#8212; you&#8217;ll be able to see exactly what code you&#8217;ve changed.</p>
<p>You can now Commit this change (always add Summary text so you know the reason for the change!) and then Push it to the server (Push origin).</p>
<h2>Using or Cloning Other Repositories</h2>
<p>Now that you&#8217;ve published your project, anyone can use it. And don&#8217;t forget that you can also use other people&#8217;s repositories. In both cases you&#8217;ll want to click the &#8220;Clone or Download&#8221; button on the repository page.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3718" src="https://blog.xojo.com/wp-content/uploads/2018/01/2018-01-12_11-12-07.png" alt="" width="1009" height="456" /></p>
<p>For simple usage where you just want to grab the current version of the repository you can then click the Download ZIP button. Once downloaded, unzip the file and then open the project in Xojo where you can use it or copy/paste it into your own projects (review the license agreement before you use projects, of course).</p>
<p>You&#8217;ll want to clone a project when you want to manage it using GitHub Desktop (or your GitHub client of choice). This allows you to fetch and pull updates from the online repository and also allows you to make your own changes and push them up to the server where the repository owner will get them as pull requests. The owner can then review your changes and decided whether they want to incorporate (pull) them into the project.</p>
<h2>GitHub is Great</h2>
<p>I look forward to seeing new Xojo projects appearing on GitHub! This article just scratches the surface of what GitHub does and also only touches lightly on the concept of source control in general. If you&#8217;d like to use Git for source control, but don&#8217;t want to make your projects public you might also want to check out <a href="https://bitbucket.org">Atlassian BitBucket</a> which offers free Git hosting for both private and public repositories.</p>
<p>To learn more about Git in general, watch these webinars:</p>
<ul>
<li><a href="http://developer.xojo.com/webinar-getting-to-know-git-part-1">Getting to Know Git Part 1</a></li>
<li><a href="http://developer.xojo.com/webinar-getting-to-know-git-part-2">Getting to Know Git Part 2</a></li>
<li><a href="http://developer.xojo.com/webinar-source-control">Source Control</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Working and Saving with Subversion</title>
		<link>https://blog.xojo.com/2017/03/16/working-and-saving-with-subversion/</link>
		
		<dc:creator><![CDATA[Norman Palardy]]></dc:creator>
		<pubDate>Thu, 16 Mar 2017 07:00:36 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[SVN]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2450</guid>

					<description><![CDATA[It's a simple, quick way to work with your Xojo code with SVN.]]></description>
										<content:encoded><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Apache_Subversion">Apache Subversion</a> (SVN) is a popular, open source versioning and revision control system. We use it here at Xojo.</p>
<p>You will have times when SVN will update the files on your drive, such as when you update from the server. Xojo does not automatically detect these changes, so most people resort to closing the project file and re-opening it in order to get the new changes displayed in Xojo. In fact, Xojo includes an IDE script to do just that: Examples/Advanced/IDE Scripting/ReloadProject.</p>
<p>There&#8217;s another solution. Here&#8217;s my tip for what I do to quickly have the IDE load those changes without having to close and re-open the project:</p>
<ul>
<li>Save my changes in Xojo</li>
<li>Merge incoming changes from SVN to my local working copy</li>
<li>Touch ONE item in the IDE. For example, change one letter in a property and then change it back.</li>
<li>Select File-&gt;Revert to Saved</li>
</ul>
<p>Voila! The newly merged code on the disk is loaded into the Xojo IDE. It&#8217;s a simple, quick way to work with your Xojo code and SVN.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xojo Draw in the App Store</title>
		<link>https://blog.xojo.com/2016/10/12/xojo-draw-in-the-app-store/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Wed, 12 Oct 2016 19:10:15 +0000</pubDate>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=1981</guid>

					<description><![CDATA[Want to see how easy it is to make an iOS app with Xojo? Check out Xojo Draw in the App Store. Released last week&#8230;]]></description>
										<content:encoded><![CDATA[<p>Want to see how easy it is to make an iOS app with Xojo? Check out <a href="https://itunes.apple.com/us/app/xojo-draw/id1159010053?mt=8">Xojo Draw in the App Store</a>. Released last week at the start of <a href="https://blog.xojo.com/2016/10/11/xdc-2016-recap/">XDC 2016</a>, Xojo Draw is an enhanced version of the Xojo Doodle sample project that is included with Xojo. Working on both iPhone and iPad, Xojo Draw lets you draw with touch and save your creations to the camera roll or send to other apps.</p>
<p><span id="more-1981"></span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1983" src="https://blog.xojo.com/wp-content/uploads/2016/10/2016-10-12_10-09-13.png" alt="2016-10-12_10-09-13" width="600" height="649" /></p>
<p>In addition, to help you learn how you can create your own iOS apps, the <a href="https://github.com/xojo/XojoDraw">full source code for Xojo Draw is on GitHub</a> (click the Clone or Download button to get it)! Grab the free version of <a href="http://www.xojo.com/download">Xojo</a> and the Xojo Draw source code to see for yourself how you can quickly start creating your own iOS apps.</p>
<p>And stay tuned for more Xojo-made apps to appear in the App Store, along with full source code to help you get coding with Xojo iOS!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Guest Post: Using Gitflow for Team Development</title>
		<link>https://blog.xojo.com/2015/11/23/guest-post-using-gitflow-for-team-development/</link>
		
		<dc:creator><![CDATA[Ken Tekinay]]></dc:creator>
		<pubDate>Mon, 23 Nov 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Team Development]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2015/11/23/guest-post-using-gitflow-for-team-development/</guid>

					<description><![CDATA[Learn about Gitflow, a convenient way for multiple developers to work together using Git.]]></description>
										<content:encoded><![CDATA[<p><em><span class="s1">Guest Post by Kem Tekinay, a consultant and developer based in New York. Kem&nbsp;has been an avid Xojo user since the early days and is a world-renowned thinker and philosopher, at least its his own mind. You can find him and his works through the <a href="http://www.mactechnologies.com">MacTechnologies Consulting web site</a>.</span></em></p>
<p class="p1"><span class="s1">After months of work, y</span>our project is so fabulous that you need more developers. You&#8217;ve been using Git as your version control system and creating/merging branches to keep it all straight, but so far it&#8217;s just been for personal use. How do you coordinate with others to maintain some semblance of order?</p>
<p class="p1"><span class="s1">Try the Gitflow Workflow.</span><span class="s1"><br />
<span id="more-339"></span></span></p>
<h2 class="p1"><span class="s1">Gitflow</span></h2>
<p class="p1"><span class="s1">Gitflow is a popular way of managing revisions centered around a few basic ideas and actions. It is built into recent version of Git and supported by clients like the free <a href="https://www.sourcetreeapp.com/"><span class="s2">SourceTree</span></a> and the commercial <a href="http://www.git-tower.com/"><span class="s2">Tower</span></a> apps.</span></p>
<p class="p1"><span class="s1"><img decoding="async" style="width: 578px;" title="gitflow source control" src="https://blog.xojo.com/wp-content/uploads/2015/11/Gitflow.pngt1466486449161ampwidth578" sizes="(max-width: 578px) 100vw, 578px" alt="gitflow source control" width="578" data-constrained="true"></span></p>
<p class="p1"><span class="s1">You start Gitflow with two main branches, <em>master</em> and <em>develop</em>. These are initialized for you when you activate Gitflow through one of the gui apps or through the command line.</span></p>
<p class="p1"><span class="s1">The <em>master</em> branch is never modified directly. It is the code for the currently released version of the app and it is only updated on a new release.</span></p>
<p class="p1"><span class="s1">The <em>develop</em> branch is never modified directly either. It starts as a branch of the current master and is updated with changes made in other branches (<em>feature</em> or <em>hotfix</em>, see below). The key here is that the <em>develop</em> branch should always be in a state where it can become the new <em>master</em> at a moment&#8217;s notice.</span></p>
<p class="p1"><span class="s1">Gitflow is then concerned with the actions that we developers might take. The first common action is to start a &#8220;feature&#8221;. This <em>feature</em> branch should be appropriately named, e.g., &#8220;Addinvoicequerywindow&#8221;, and is usually branched off of <em>develop</em>, although it can start from any commit or branch. The developer works in this branch to add and test their&nbsp;code, committing as necessary. Once complete, they&nbsp;&#8220;finish&#8221; the <em>feature</em> by choosing &#8220;Finish&#8221; from the Gitflow options. Gitflow merges the <em>feature</em> branch into <em>develop</em> and optionally deletes the branch.</span></p>
<p class="p1"><span class="s1">Each developer can have as many simultaneous features as needed and can manually merge one feature branch into another, or cherry pick changes from any other branch.</span></p>
<p class="p1"><span class="s1">The next action that a developer might need is a &#8220;hotfix&#8221;. By starting a <em>hotfix</em> branch, Gitflow will branch off of <em>master</em>, not <em>develop.</em>&nbsp;The purpose of a hotfix is to correct a bug that came up in the currently released version that cannot wait for the next full release. Once a <em>hotfix</em> is &#8220;finished&#8221;, Gitflow will merge it back into both <em>master</em> and <em>develop</em>. At that point, the new <em>master</em> should be compiled and released.</span></p>
<p class="p1"><span class="s1">The final action is the &#8220;release&#8221;, started after all the needed features have been merged into <em>develop</em> and are&nbsp;ready to be deployed. This is where you can make final changes like updating the version number, release notes, etc. When a <em>release</em> is &#8220;finished&#8221;, Gitflow will merge it into <em>master</em> and <em>develop</em>, and tag that branch with the version number. After that, the next cycle begins.</span></p>
<p class="p1"><span class="s1">In short, you start a <em>feature</em> (or features), make it work, then finish the <em>feature</em>. When all your features are done, start a <em>release</em>, update version numbers, etc., and finish the <em>release</em>. If a bug in the currently deployed version comes to light, start a <em>hotfix</em>, fix the bug, then finish it. By using &#8220;start&#8221; and &#8220;finish&#8221; through Gitflow, it handles the appropriate branching, merging, and tagging for you.</span></p>
<p class="p1"><span class="s1">For more information, go to <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow"><span class="s2">the Atlassian site</span></a> for a good general description and examples (scroll down on the site to read about Gitflow).</span><span class="s1"><br />
<!--HubSpot Call-to-Action Code --> <span id="hs-cta-wrapper-9e86dfb8-7d24-487b-a044-9a461c7f16ca" class="hs-cta-wrapper"> <span id="hs-cta-9e86dfb8-7d24-487b-a044-9a461c7f16ca" class="hs-cta-node hs-cta-9e86dfb8-7d24-487b-a044-9a461c7f16ca"><br />
<!-- [if lte IE 8]></p>





<div id="hs-cta-ie-element"></div>


<![endif]--> <a href="https://www.youtube.com/watch?v=D_iMQAjaxLA" target="_blank" rel="noopener noreferrer"><img loading="lazy" decoding="async" id="hs-cta-img-9e86dfb8-7d24-487b-a044-9a461c7f16ca" class="hs-cta-img aligncenter" style="border-width: 0px;" src="https://blog.xojo.com/wp-content/uploads/2015/07/9e86dfb8-7d24-487b-a044-9a461c7f16ca.png" alt="Version Control Video Git" width="645" height="104"></a> </span><script src="https://js.hscta.net/cta/current.js" charset="utf-8">// <![CDATA[
<script type="text/javascript"><![CDATA[ hbspt.cta.load(608515, '9e86dfb8-7d24-487b-a044-9a461c7f16ca', {});
// ]]&gt;</script></span><br />
<!-- end HubSpot Call-to-Action Code --> </span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Raspberry Pi GPIO Module On GitHub</title>
		<link>https://blog.xojo.com/2015/11/10/raspberry-pi-gpio-module-on-github/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 10 Nov 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GPIO]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[RPi]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2015/11/10/raspberry-pi-gpio-module-on-github/</guid>

					<description><![CDATA[The Xojo GPIO module is now available on GitHub. Use it to help make Raspberry Pi apps that interface with the GPIO port.]]></description>
										<content:encoded><![CDATA[<p>In order to interface with the <a href="http://developer.xojo.com/raspberry-pi">Raspberry Pi</a>, you often want to use the General Purpose Input/Output (GPIO) port. It is easy enough to connect a broadboard to the port, but how do you write Xojo code that can talk to the port?</p>
<p><span id="more-311"></span></p>
<p>The answer is to use the GPIO module that is included with Xojo in conjunction with the <a href="http://wiringpi.com/">wiringPi library</a>. And now this module is also available on GitHub:</p>
<p><a href="https://github.com/xojo/GPIO">Xojo GPIO Module</a></p>
<p>This module is used for our two Raspberry Pi projects: <a href="http://developer.xojo.com/rpi-blinking-led-tutorial">Blinking LED</a> and <a href="http://developer.xojo.com/button-led-tutorial">Button LED</a>. They are also used by the <a href="https://einhugur.com/blog/index.php/xojo-gpio/">Einhugur Pi projects for Xojo</a>.</p>
<p>I encourage all you Raspberry Pi experts to clone the <a href="https://github.com/xojo/GPIO">GPIO project on GitHub</a> and push up any enhancements you come up with.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Source Control Solutions</title>
		<link>https://blog.xojo.com/2015/07/28/source-control-solutions/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 28 Jul 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Subversion]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2015/07/28/source-control-solutions/</guid>

					<description><![CDATA[Source control and version control solutions that you can use with Xojo.]]></description>
										<content:encoded><![CDATA[<p>Anyone who is developing software, even if they are the only person working on the project, should be using source control (aka as version control). As you can see, this comes up a lot:</p>
<p><span id="more-321"></span></p>
<ul>
<li><a href="https://youtu.be/A4YsbOUqPz8">Source control webinar</a></li>
<li><a href="https://youtu.be/D_iMQAjaxLA">Getting to Know Git, part 1 webinar</a></li>
<li><a href="https://youtu.be/ReztN3lJf5A">Getting to Know Git, part 2 webinar</a></li>
<li><a href="http://www.xojo.com/store/#conference">Saving your Sanity with Git for Source Code Management XDC 2015 session</a></li>
<li><a href="http://flightgeekjustin.wordpress.com/2013/04/30/using-git-tips-with-real-studio-xojo/">Using Git with Xojo</a></li>
<li><a href="http://www.xdevmag.com/browse/12.4/12408/">Mercurial and Xojo</a></li>
</ul>
<p>Source control tracks your changes, can serve as a backup and allows you to try new and different things without fear of completely breaking your code (because you can always go back to a prior, working version of the source).</p>
<p>Since we talk about why you should be using source control so much, I thought I would point out some companies that provide hosted source control and some tools to help you use source control with Xojo.</p>
<p>Now remember, you can use Xojo with <strong>any</strong> source control system, but you&#8217;ll want to use the Text Project format which is available in licensed versions of Xojo (Desktop and higher). The Text Project format is not available with Single Desktop or the Free version of Xojo.</p>
<h2>Subversion</h2>
<p><a href="https://subversion.apache.org/">Subversion</a> is an open-source version control system made by the Apache folks. It is widely used and relatively easy to understand, using a centralized server as the master repository (or repo) for your source code.</p>
<ul>
<li><a href="https://bitbucket.org/product/version-control-software">BitBucket</a></li>
<li><a href="http://beanstalkapp.com/pricing">Beanstalk</a> (free plan available)</li>
<li><a href="https://www.assembla.com/subversion/">Assembla</a> (free plan available)</li>
</ul>
<p>You&#8217;re likely to want to use a Subversion client app to make working with Subversion as easy as possible. Here are some that are available:</p>
<ul>
<li><a href="https://ikoder.com">Xversion</a> (Mac)</li>
<li><a href="http://versionsapp.com/">Versions</a> (Mac)</li>
<li><a href="https://www.zennaware.com/cornerstone/index.php">Cornerstone</a> (Mac)</li>
<li><a href="http://www.smartsvn.com/">SmartSVN</a> (Mac, Windows, Linux)</li>
<li><a href="http://tortoisesvn.net/">TortoiseSVN</a> (Windows)</li>
</ul>
<h2>Git</h2>
<p><a href="https://git-scm.com/">Git</a> is a &#8220;free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency&#8221;. With a distributed system, the full repo is available at each user. You can commit locally before pushing changes up to a central server for others to see.</p>
<ul>
<li><a href="https://github.com/">GitHub</a> (free plans available)</li>
<li><a href="https://about.gitlab.com">GitLab</a> (free plans available)</li>
<li><a href="https://bitbucket.org/">BitBucket</a> (free plan available)</li>
</ul>
<p>And here are some Git clients:</p>
<ul>
<li><a href="https://www.sourcetreeapp.com/">SourceTree</a> (Windows, OS X)</li>
<li>GitHub (<a href="https://windows.github.com/">Windows</a>, <a href="https://mac.github.com/">OS X</a>)</li>
<li><a href="http://www.git-tower.com/">Tower</a> (OS X)</li>
<li><a href="https://code.google.com/p/tortoisegit/">TortoiseGit</a> (Windows)</li>
<li><a href="http://www.syntevo.com/smartgit/">SmartGit</a> (Windows, OS X, Linux)</li>
</ul>
<p>Learn how to <a href="https://blog.xojo.com/2018/01/17/start-an-open-source-project-on-github/">Start and Open-Source Xojo Project on GitHub</a>.</p>
<h2>Mercurial</h2>
<p><a href="https://mercurial.selenic.com/">Mercurial</a> is a &#8220;free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface&#8221;.</p>
<ul>
<li><a href="https://bitbucket.org/">BitBucket</a> (free plan available)</li>
</ul>
<h2>Which Should You Use?</h2>
<p>There is no right answer to this question. I have used Subversion and Git (and others), but not Mercurial. In my opinion, Subversion is easier to learn than Git, but it is less flexible. These days my preference is to use Git.</p>
<p>Of course, there are lots of other source control systems that exist, but the above are the major ones. If you are already using another source control system with other tools, rest assured that it will also work just fine with Xojo.<!-- end HubSpot Call-to-Action Code --></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
