Skip to content

Commit

Permalink
Fix bug on setup.py
Browse files Browse the repository at this point in the history
  • Loading branch information
szaghi committed Mar 2, 2015
1 parent f5cc795 commit 4388bb2
Show file tree
Hide file tree
Showing 38 changed files with 5,264 additions and 4 deletions.
31 changes: 31 additions & 0 deletions release/FoBiS-1.5.7/CONTRIBUTING.md
@@ -0,0 +1,31 @@
# How to contribute

This project is open source, therefore, anyone interested to use, to develop or to contribute to it is welcome.

The project must remain KISS (Keep It Simple and Stupid) thus a few guidelines for contributing are provided.

## Issues Handling

If you find issues (bugs or new features requests) you are kindly requested to highlight them on the GitHub repository.

+ Make sure you have a [GitHub account](https://github.com/signup/free);
+ submit a ticket for your issue, assuming one does not already exist;
+ clearly describe the issue including steps to reproduce when it is a bug;
+ make sure you fill in the earliest version that you know has the issue.

Alternatively, you can signal issues directly to the main developer at stefano.zaghi@gmail.com.

## Collaborative Development

If you like to directly contribute to the project you are welcome. To improve the collaborative development of the project you are kindly requested to respect the following guidelines.

+ Fork the repository on GitHub;
+ create a topic branch from where you want to base your work;
+ this is usually the master branch:
+ only target release branches if you are certain your fix must be on that branch;
+ to quickly create a topic branch based on master; `git branch fix/master/my_contribution master` then checkout the new branch with `git checkout fix/master/my_contribution`; please avoid working directly on the `master` branch;
+ check for unnecessary whitespace with `git diff --check` before committing;
+ make sure your commit messages are clear;
+ make sure you have properly tested for your changes.

As long as possible, contributors are kindly requested to follow the current coding style of the project (two white spaces instead of tabs, no trailing white spaces, blank lines should not have any space). In general, it is strongly recommended to avoid Microsoft-Windows-like carriage-return symbols in order to not pollute the source files with unnecessary symbols.
5 changes: 5 additions & 0 deletions release/FoBiS-1.5.7/FoBiS.py
@@ -0,0 +1,5 @@
#!/usr/bin/env python
"""Wrapper of FoBiS.py program extracted from fobis package"""
from fobis.fobis import main
if __name__ == '__main__':
main()
20 changes: 20 additions & 0 deletions release/FoBiS-1.5.7/FoBiS.py.egg-info/PKG-INFO
@@ -0,0 +1,20 @@
Metadata-Version: 1.1
Name: FoBiS.py
Version: 1.5.7
Summary: a Fortran Building System for poor men
Home-page: https://github.com/szaghi/FoBiS
Author: Stefano Zaghi
Author-email: stefano.zaghi@gmail.com
License: UNKNOWN
Description: FoBiS.py, a Fortran Building System for poor men, is a KISS tool for automatic building modern Fortran projects, it being able to automatically resolve inter-modules dependancy hierarchy.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Text Processing
23 changes: 23 additions & 0 deletions release/FoBiS-1.5.7/FoBiS.py.egg-info/SOURCES.txt
@@ -0,0 +1,23 @@
CONTRIBUTING.md
FoBiS.py
LICENSE.gpl3.md
MANIFEST.in
README.md
setup.py
FoBiS.py.egg-info/PKG-INFO
FoBiS.py.egg-info/SOURCES.txt
FoBiS.py.egg-info/dependency_links.txt
FoBiS.py.egg-info/entry_points.txt
FoBiS.py.egg-info/requires.txt
FoBiS.py.egg-info/top_level.txt
fobis/Builder.py
fobis/Cleaner.py
fobis/Colors.py
fobis/Dependency.py
fobis/Fobos.py
fobis/ParsedFile.py
fobis/__init__.py
fobis/cli_parser.py
fobis/config.py
fobis/fobis.py
fobis/utils.py
1 change: 1 addition & 0 deletions release/FoBiS-1.5.7/FoBiS.py.egg-info/dependency_links.txt
@@ -0,0 +1 @@

3 changes: 3 additions & 0 deletions release/FoBiS-1.5.7/FoBiS.py.egg-info/entry_points.txt
@@ -0,0 +1,3 @@
[console_scripts]


9 changes: 9 additions & 0 deletions release/FoBiS-1.5.7/FoBiS.py.egg-info/requires.txt
@@ -0,0 +1,9 @@

[FORD]
FORD>=1.1.0

[PreForM.py]
PreForM.py>=v1.1.1

[graphviz]
graphviz>=0.4.2
1 change: 1 addition & 0 deletions release/FoBiS-1.5.7/FoBiS.py.egg-info/top_level.txt
@@ -0,0 +1 @@
fobis
596 changes: 596 additions & 0 deletions release/FoBiS-1.5.7/LICENSE.gpl3.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions release/FoBiS-1.5.7/MANIFEST.in
@@ -0,0 +1 @@
include *.md
101 changes: 101 additions & 0 deletions release/FoBiS-1.5.7/README.md
@@ -0,0 +1,101 @@
<a name="top"></a>
# FoBiS.py [![Latest Version](https://pypip.in/version/FoBiS.py/badge.svg?style=flat)](https://pypi.python.org/pypi/FoBiS.py/) [![GitHub tag](https://img.shields.io/github/tag/szaghi/FoBiS.svg)]()

[![License](https://pypip.in/license/FoBiS.py/badge.svg?style=flat)](https://pypi.python.org/pypi/FoBiS.py/)

### FoBiS.py, Fortran Building System for poor men
A KISS tool for automatic building modern Fortran projects.

### Status
[![Development Status](https://pypip.in/status/FoBiS.py/badge.svg?style=flat)](https://pypi.python.org/pypi/FoBiS.py/)
[![Build Status](https://travis-ci.org/szaghi/FoBiS.svg?branch=master)](https://travis-ci.org/szaghi/FoBiS)
[![Coverage Status](https://img.shields.io/coveralls/szaghi/FoBiS.svg)](https://coveralls.io/r/szaghi/FoBiS)
[![Code Health](https://landscape.io/github/szaghi/FoBiS/master/landscape.svg?style=flat)](https://landscape.io/github/szaghi/FoBiS/master)

#### Issues
[![GitHub issues](https://img.shields.io/github/issues/szaghi/FoBiS.svg)]()
[![Ready in backlog](https://badge.waffle.io/szaghi/fobis.png?label=ready&title=Ready)](https://waffle.io/szaghi/fobis)
[![In Progress](https://badge.waffle.io/szaghi/fobis.png?label=in%20progress&title=In%20Progress)](https://waffle.io/szaghi/fobis)
[![Open bugs](https://badge.waffle.io/szaghi/fobis.png?label=bug&title=Open%20Bugs)](https://waffle.io/szaghi/fobis)

#### Python support [![Supported Python versions](https://pypip.in/py_versions/FoBiS.py/badge.svg?style=flat)](https://pypi.python.org/pypi/FoBiS.py/) [![Download format](https://pypip.in/format/FoBiS.py/badge.svg?style=flat)](https://pypi.python.org/pypi/FoBiS.py/)

## Why?
GNU Make, CMake, SCons & Co. are fantastic tools, even too much for a _poor-fortran-man_.

However, the support for modern Fortran project is still poor: in particular, it is quite difficult (and boring) to track the inter-module-dependency hierarchy of project using many module files.

Modern Fortran programs can take great advantage of using modules (e.g. encapsulation), however their compilations can quickly become a nightmare as the number of modules grows. As a consequence, an automatic build system able to track (on the fly) any changes on the inter-module-dependency hierarchy can save the life of a _poor-fortran-man_.

### Why not use an auto-make-like tool?
There are a lot of alternatives for deal with inter-module-dependency hierarchy, but they can be viewed as a pre-processor for the actual building system (such as auto-make tools or even the Fortran compiler itself that, in most cases, can generate a dependency list of a processed file), thus they introduce another level of complexity... but a _poor-fortran-man_ always loves the KISS (Keep It Simple, Stupid) things!

##### FoBiS.py is designed to do just one thing: build a modern Fortran program without boring you to specify a particular compilation hierarchy.

### OK, what can FoBiS.py do? I am a _poor-fortran-man_, I do not understand you...
Let us consider the following project tree
```bash
└── src
├── cumbersome.f90
└── nested-1
├── first_dep.f90
└── nested-2
└── second_dep.inc
```
The main program contained into `cumbersome.f90` depends on `first_dep.f90` via the use statement `use NesteD_1`, thus it actually depends on the module `nested_1`. This module depends on `second_dep.inc` via the include statement `include 'second_dep.inc'`. Note that the dependency files are stored in a *cumbersome* nested tree. Write a makefile for this very simple example could waste many minutes... when the modules number increases the time wasted blows up!

It would be very nice to have a tool that automatically track the actual dependency-hierarchy and build the project on the fly, without the necessity to track the dependency-hierarchy changes. FoBiS.py just makes this... and few more things!

Suppose your goal is to build some (all) of the main programs contained into the project tree. In this case FoBiS.py can save your life: just type
```bash
FoBiS.py build
```
in the root of your project and FoBis.py will build all the main programs nested into the current root directory. Obviously, FoBiS.py will not (re-)compile unnecessary objects if they are up-to-date (like the "magic" of a makefile).

FoBiS.py has many (ok... some) others interesting features: if I have convinced you, please read the following.

Go to [Top](#top)

## Main features
+ Automatic parsing of files for dependency-hierarchy creation in case of _use_ and _include_ statements;
+ automatic building of all _programs_ found into the root directory parsed or only a specific selected target;
+ avoid unnecessary re-compilation (algorithm based on file-timestamp value);
+ simple command line interface (CLI);
+ friendly support for external libraries linking;
+ Intel, GNU and g95 Fortran Compilers support;
+ custom compiler support;
+ configuration-files-free;
+ ... but also configuration-file driven building for complex buildings;
+ parallel compiling enabled by means of concurrent `multiprocessing` jobs;
+ advanced automatic (re-)building algorithms:
- automatic (re-)building when compiling flags change with respect the previous building;
- automatic (re-)building when linked library change;
- automatic building of projects upon which the actual project depends;
+ generation of GNU Make makefile with rules fully supporting dependency-hierarchy for _make-irreducible users_;
+ easy-extensible;
+ well integrate with a flexible pythonic pre-processor, [PreForM.py](https://github.com/szaghi/PreForM).

Go to [Top](#top)

## Documentation
FoBiS.py documentations are hosted on GitHub. The [wiki](https://github.com/szaghi/FoBiS/wiki) and the [README](https://github.com/szaghi/FoBiS) are the main documentation resources. Other sources of documentation are the examples.

Here is a non-comprehensive list of the main topics

| [Install](https://github.com/szaghi/FoBiS/wiki/Install) | [Usage](https://github.com/szaghi/FoBiS/wiki/Usage) |
|----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| [Manual Install](https://github.com/szaghi/FoBiS/wiki/Manual-Installation) | [Getting Started](https://github.com/szaghi/FoBiS/wiki/Getting-Started) |
| [PyPi Install](https://github.com/szaghi/FoBiS/wiki/PyPI-Installation%2C-the-Python-Package-Index) | [A Taste of FoBiS.py](https://github.com/szaghi/FoBiS/wiki/Taste) |
| | [fobos: the FoBiS.py makefile](https://github.com/szaghi/FoBiS/wiki/fobos) |
| | [FoBiS.py in action](https://github.com/szaghi/FoBiS/wiki/Projects-Using-FoBiS) |

Go to [Top](#top)

## Copyrights
FoBiS.py is an open source project, it is distributed under the [GPL v3](http://www.gnu.org/licenses/gpl-3.0.html) license. A copy of the license should be distributed within FoBiS.py. Anyone interested to use, develop or to contribute to FoBiS.py is welcome. Take a look at the [contributing guidelines](CONTRIBUTING.md) for starting to contribute to the project.

Go to [Top](#top)

## A screencast of a very cumbersome example

![Screencast](examples/cumbersome_dependency_program_interdepent/cumbersome-cast.gif)
Binary file added release/FoBiS-1.5.7/dist/FoBiS.py-1.5.7.tar.gz
Binary file not shown.

0 comments on commit 4388bb2

Please sign in to comment.