<?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 Archives - Creatronix</title>
	<atom:link href="https://creatronix.de/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>https://creatronix.de/tag/git/</link>
	<description>My adventures in code &#38; business</description>
	<lastBuildDate>Sat, 17 Dec 2022 09:38:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>What is python pbr?</title>
		<link>https://creatronix.de/what-is-python-pbr/</link>
		
		<dc:creator><![CDATA[Jörn]]></dc:creator>
		<pubDate>Mon, 15 Nov 2021 17:05:57 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[pbr]]></category>
		<category><![CDATA[pypi]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[setuptools]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">https://creatronix.de/?p=4076</guid>

					<description><![CDATA[<p>In Distributing your own package on PyPi I&#8217;ve talked about setuptools and twine to upload a package to the Python Package Index. PBR is a nice little add-on to simplify the setup and the deplyoment of your packages. PBR stands for Python Build Reasonableness and it is A library for managing setuptools packaging needs in&#8230;</p>
<p>The post <a href="https://creatronix.de/what-is-python-pbr/">What is python pbr?</a> appeared first on <a href="https://creatronix.de">Creatronix</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In <a href="https://creatronix.de/distributing-your-own-package-on-pypi/">Distributing your own package on PyPi</a> I&#8217;ve talked about setuptools and twine to upload a package to the Python Package Index.</p>
<p>PBR is a nice little add-on to simplify the setup and the deplyoment of your packages.<span id="more-4076"></span></p>
<p>PBR stands for <a href="https://docs.openstack.org/pbr/latest/">Python Build Reasonableness</a></p>
<p>and it is</p>
<blockquote><p>A library for managing <em>setuptools</em> packaging needs in a consistent manner.</p></blockquote>
<p>in their own words.</p>
<h2>Installation</h2>
<pre>pip install pbr</pre>
<h2>setup.py</h2>
<p>The first thing we can optimize is the structure of the setup.py file:</p>
<pre><span class="kn">from</span> <span class="nn">setuptools</span> <span class="kn">import</span> <span class="n">setup</span>

<span class="n">setup</span><span class="p">(</span>
    <span class="n">setup_requires</span><span class="o">=</span><span class="p">[</span><span class="s1">'pbr'</span><span class="p">],</span>
    <span class="n">pbr</span><span class="o">=</span><span class="kc">True</span><span class="p">
)</span></pre>
<h2>pyproject.toml</h2>
<p>We need to add a pyproject.toml with the following content:</p>
<pre>[build-system]
requires = ["pbr&gt;=5.7.0", "setuptools&gt;=36.6.0", "wheel"]
build-backend = "pbr.build"</pre>
<h2>setup.cfg</h2>
<p>We also add a setup.cfg file which will contain the package metadata:</p>
<pre>[metadata]
name = easy_pattern
author = Joern Boegeholz
author-email = boegeholz.joern@gmail.com
summary = A Pseudo-DSL for Python RegEx
description-file = README.md
home-page = https://github.com/jboegeholz/easypattern
license = MIT
classifier =
    Development Status :: 4 - Beta
    Intended Audience :: Developers
    Intended Audience :: Information Technology
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent
    Programming Language :: Python
keywords =
    tutorial

[files]
packages =
    easy_pattern</pre>
<p>classifier is a list of <a href="https://pypi.org/pypi?%3Aaction=list_classifiers">&#8220;trove classifiers&#8221;</a></p>
<h2>Build a release</h2>
<p>Tag the current version:</p>
<pre>git tag -am "Version 0.3.0" 0.3.0</pre>
<p>build the distribution</p>
<pre>python setup.py sdist</pre>
<p>under dist you will now find the release easy_pattern-0.3.0.tar.gz</p>
<h2>Conclusion</h2>
<h3>Pros</h3>
<ul>
<li>Automatically generates version from git tag</li>
<li>Creates changelog</li>
</ul>
<h3>Cons</h3>
<ul>
<li>YAD &#8211; yet another dependency &amp; YACF &#8211; yet another config file</li>
</ul>
<h2>Source Code</h2>
<p>https://github.com/jboegeholz/easypattern</p>
<h2>Further reading</h2>
<p><a href="https://docs.openstack.org/pbr/latest/user/using.html#setup-py">https://docs.openstack.org/pbr/latest/user/using.html#setup-py</a></p>
<p>&nbsp;</p>
<p>The post <a href="https://creatronix.de/what-is-python-pbr/">What is python pbr?</a> appeared first on <a href="https://creatronix.de">Creatronix</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is the AOSP?</title>
		<link>https://creatronix.de/what-is-the-aosp/</link>
		
		<dc:creator><![CDATA[Jörn]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 12:33:32 +0000</pubDate>
				<category><![CDATA[Android & iOS development]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[aosp]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[repo]]></category>
		<guid isPermaLink="false">https://creatronix.de/?p=3958</guid>

					<description><![CDATA[<p>AOSP is the Android Open Spurce Project Architecture Source Code is hosted here: https://android.googlesource.com/platform/manifest Google uses repo (basically a git wrapper written in python) to clone the source code. You can find the instructions here:  https://source.android.com/setup/build/downloading Further Reading What is Ninja? What is kapt? Anatomy of a Gradle file</p>
<p>The post <a href="https://creatronix.de/what-is-the-aosp/">What is the AOSP?</a> appeared first on <a href="https://creatronix.de">Creatronix</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>AOSP is the Android Open Spurce Project</p>
<h2>Architecture</h2>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3959" src="https://creatronix.de/wp-content/uploads/2021/10/aosp_architecture.png" alt="" width="618" height="727" srcset="https://creatronix.de/wp-content/uploads/2021/10/aosp_architecture.png 618w, https://creatronix.de/wp-content/uploads/2021/10/aosp_architecture-255x300.png 255w" sizes="(max-width: 618px) 100vw, 618px" /></p>
<h2>Source Code</h2>
<p>is hosted here: <a href="https://android.googlesource.com/platform/manifest">https://android.googlesource.com/platform/manifest</a></p>
<p>Google uses <a href="https://source.android.com/setup/develop#installing-repo">repo</a> (basically a git wrapper written in python) to clone the source code.</p>
<p>You can find the instructions here:  <a href="https://source.android.com/setup/build/downloading">https://source.android.com/setup/build/downloading</a></p>
<h2>Further Reading</h2>
<p><a href="https://creatronix.de/what-is-ninja/">What is Ninja?</a></p>
<p><a href="https://creatronix.de/what-is-kapt/">What is kapt?</a></p>
<p><a href="https://creatronix.de/anatomy-of-a-gradle-file/">Anatomy of a Gradle file</a></p>
<p>The post <a href="https://creatronix.de/what-is-the-aosp/">What is the AOSP?</a> appeared first on <a href="https://creatronix.de">Creatronix</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
