Giter Site home page Giter Site logo

pombredanne / rbuild-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pombreda/rbuild

0.0 1.0 0.0 3.41 MB

Developer software build process automation using Conary tools

License: Apache License 2.0

Makefile 1.84% Gherkin 0.04% Python 97.54% Shell 0.57%

rbuild-1's Introduction

INTRODUCTION
============

rBuild is the unified interface for Conary, rMake, and rBuilder.
The purpose of this tool is to provide a single, unified, and
fully-documented interface (command line and Python API) to
developers using rPath technologies, using an extensible plugin
framework, which automates many of the steps required to follow
rPath's recommended best practices.

rBuild depends on product-definition packages that define the
characteristics of the product you are building, including which
images you build, what platform your product is based on, and
so forth.  Use the rBuilder interface to create and edit these
packages.  rBuild updates them automatically when appropriate.

A shell script written using the command-line interface should be
relatively easy to transform to a Python program that uses the Python
API.  You can provide your own plugins that dynamically extend that
command-line interface and Python API.  Your plugins can also hook
into other parts of the API, allowing you to enforce preconditions
and take action following successful actions.


DEVELOPMENT
===========

Versions 1.x are focused on the command line.  Public python
APIs will be generally stable and will not be changed without
specific reason, but strong API stability will not be maintained.
API changes will be documented in the NEWS file for versions 1.x

It is currently intended that when version 2.0 is released, public
interfaces will be kept stable.  The general rule is that API
stability allows making changes that should be backward-compatible
in well-formed Python code.  For rBuild, "stable" is defined as:
 o  Adding optional keyword parameters is acceptable.
 o  Adding additional methods, classes, and functions is
    acceptable.
 o  Raising a more specific error class is acceptable, as
    long as the more specific error class is a subclass of
    the error previously raised.
 o  Modifying the semantics of existing arguments is not
    acceptable, except to extend them in ways that are
    generally functionally compatible.

The general exception is that if a significant functional bug
cannot be fixed without an interface change, the interface may
be changed (and the change noted in the NEWS file), and we will
make our best effort to mitigate the effects of the change.

All documentation regarding stable interfaces is relevant
only to published stable releases; it is not in force for alpha
and beta releases, including 0.x releases and any automated builds.

When interfaces are deprecated, the deprecated interface will be
supported for a major release cycle when feasible.  That is, if an
interface is deprecated during 2.x releases after 2.0 is released,
it will be available during 3.x releases, and may be removed starting
with 4.0.  During 3.x, it will be possible to request that that
API will raise rbuild.errors.DeprecatedInterfaceError; otherwise,
the APIs will provide a warning (printed to standard error in the
command-line use case).

API documentation is available at http://cvs.rpath.com/rbuild-docs/
or by running "make html" and viewing docs/developer/index.html (requires
epydoc).


Pylint Hooks
============

When developing rbuild and rbuild plugins, please consider using our
pylint commit hook.  This hook will run pylint against the files
you modified in your commit and warn you of any pylint problems.
Add the following lines to the file .hg/hgrc in your rbuild checkout:

[hooks]
precommit=./pylint/pylint_commit

Pylint problems that were caused by your patch should either be fixed
or disabled by adding a pylint pragma line.  The pylint pragma line
should look like this:

# W0611: unused variable ParseError - we want ParseError to be importable from
# errors.py even though it is not used.
# W0612: some other warning - reason why this warning is not being heeded
# pylint: disable-msg=W0611,W0612


REPORTING BUGS
==============

Please visit https://issues.rpath.com/ and file issues in the rBuild
project.

rbuild-1's People

Contributors

elliotpeele avatar mibanescu avatar mtharp avatar rojern avatar rpath avatar wfscheper avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.