Tracer is written in Python and it is compatible with its both 2.7 and 3.x versions. Besides standard python interpreter, tracer requires its few packages:
- psutil - For getting informations about processes, memory, etc
If you want to contribute and write some code, I will strictly insist on these rules
- Use tabs for indentation
- Tabs are meaningful - 1 tab = 1 logical level
- Everyone can view the one same tab with different width
- Easier to work with
- Use spaces for aligning
- There is no way how to correctly align with tabs
- Use
camelCase
for naming files,CamelCase
for classes,underscore_case
for methods and variables - There are no access modifiers, so use prefix
_
for private things
There is an example code following our coding style
class Rpm(IPackageManager):
def packages_newer_than(self, unix_time):
packages = []
for t in self._transactions_newer_than(unix_time):
# Append every package in transaction into `packages`
...
return packages
def _transactions_newer_than(self, unix_time):
...
The default language for the program is english. For translations to other languages, we need contributors. If you are using Tracer and want to help us, you could translate it to languages, that you know. There are only few strings in the code, so its the matter of minutes.
Please see the Tracer on transifex.
Tracer uses tito for managing versions and doing all RPM stuff. There is quote what tito is:
"Tito is a tool for managing RPM based projects using git for their source code repository"
That means if you are fedora user, you can use prepared tito
package, but else you probably would have to install it by your own.
Next, there is Makefile describing most of actions you might want to do.
In general, managing versions
make release
# For specific version use
tito tag --use-version X.Y.Z
# Develop
make rpm-test # [1]
make rpm-try # [2]
# Create official package
make rpm # [3]
- [1] Create RPM package from last commit.
- [2] Same as [1] but additionally install it.
- [3] Create SRPM from last tag and ask copr to build RPM packages and distribute it through frostyx/tracer repository. There is
.repo
files for F19 and F20