teapot - A third-party building tool

This documentation is about teapot, a multi-platform tool to ease fetching, organization and building of third-party softwares.

What is teapot ?

teapot is a Python package that comes with teapot, a command-line interface tool. teapot reads a YAML file (called the party file) which defines the source, the properties, the environment and the build steps for all the third-party libraries to build.

The idea is to add a simple party.yaml file inside your project source tree that will describe which third-party libraries it depends on and how to build them.

The first chapter, The party file, describes the format of the party file and enumerates all the possible options.

The second chapter, Inside the party, explains the internals of the teapot module, which will allow you to easily write custom filters, extensions, fetchers, unarchivers and to change the complete behavior of teapot to perfectly suit your needs.

Why should I use teapot ?

Because you probably have more interesting things to do than dealing with third-party softwares.

Most of the time, people and companies end up writing their own set of scripts to build their dependencies. It can go from a simple wget call that fetches precompiled binaries from some server, to more complex systems that download and build them from source and try to do so as reliably as they can.

Writing a script that downloads a .tar.gz file, uncompresses it and builds it is really not difficult. But what if you want to handle dependencies between your third party libraries, or desire to support variant builds ? How do you deal with multiple platforms ? How can you react to changes and automatically rebuild what’s necessary ? With teapot, you just have to write a simple party file once and call the teapot command once in a while. You can even integrate it into your usual build system since it automatically deals with dependencies and avoids unecessary rebuilds.

How simpler can it get ?

So, will teapot build my third-party software for me ?

Yes it will, but you will still have to tell him how exactly.

There are just too many different ways of building software for this to be done without human guidance.

However, teapot will make this as painless as it can get by automating all the other things that can be automated.

Why this name ?

No good reason really. I just don’t like spending too much time finding catchy names and a teapot is a nice tool so... why not ? :)

What’s next ?

Here are the chapters you should read if you want to get familiar with teapot:

Project Versions

Table Of Contents

Next topic

1. The party file

This Page