Coder Social home page Coder Social logo

gooseproject / skein Goto Github PK

View Code? Open in Web Editor NEW
12.0 6.0 4.0 286 KB

The tool used to gather and import srpms into a git repository

Home Page: http://gooseproject.org/projects/skein

License: GNU General Public License v3.0

Shell 1.94% Python 98.06%

skein's Introduction

What is Skein?

Skein is the tool which gooseproject uses to gather and import srpms.

Such an odd name, you might say. Skein is actually geese or swan flying in 'v' formation, which is such a beautiful sight. Maybe not so odd, after all.

More can be read about Skein at http://github.com/gooseproject/skein/.

Dependencies

Skein will not function without the following dependencies.

Configuration

Before using skein, several configurations may need to be adjusted. There are two main configuration files that need to be inspected/adjusted before skein will function properly. These files are skein_settings.py and github_settings.py.

  • The github_settings.py.sample needs to be renamed to github_settings.py. The username and API key also need to be adjusted to enable any github functionality.
  • Inside the skein_settings.py several configurations need to be verified and adjusted as desired
    • install_root - the directory in which source rpms are installed. This directory must be created prior to running skein
      • Files and directories inside 'install_root' can be removed at any time. They are not automatically removed.
    • base_dir - the base directory of both the local git repositories and the local lookaside cache
      • Files and directories inside the 'base_dir' can be removed at anytime. They are not automatically removed.
      • Each project directory inside the 'base_dir', except the 'lookaside_dir' are local git repositories of imported srpms
    • makefile_name - reference file used by skein to generate Makefile for each imported srpm
    • makefile_path - location of Makefile.tpl which is used to generate the Makefile for each imported srpm

Note

Moving the Makefile.tpl from the src/templates/ dir into a location in the path must occur or skein will fail with errors.

Using skein

To use skein, please find the USAGE.rst document located in this directory.

skein's People

Contributors

herlo avatar imak avatar

Stargazers

 avatar jack avatar Angus H. avatar  avatar Luke Macken avatar Russ Herrold avatar Johan Kok avatar Derek Carter avatar Ruben Kerkhof avatar  avatar Adam Huffman avatar Gerard Braad avatar

Watchers

 avatar Derek Carter avatar  avatar Nick Bebout avatar  avatar James Cloos avatar

Forkers

goozbach imak rubenk

skein's Issues

KeyError: 'request_reason'

When using skein request --path ./blahblah.src.rpm the following error occurs:

Traceback (most recent call last):
File "/home/shalkie/.local/bin/skein", line 92, in
raise SystemExit(main())
File "/home/shalkie/.local/bin/skein", line 86, in main
args.func(args)
File "/home/shalkie/.local/lib/python2.6/site-packages/skein/pyskein.py", line 684, in request_remote_repo
return self.gitremote.request_repo(self.rpminfo['name'], self.rpminfo['summary'], self.rpminfo['url'])
File "/home/shalkie/.local/lib/python2.6/site-packages/skein/gitremote.py", line 16, in request_repo
return self.remote.request_repo(repo, summary, url)
File "/home/shalkie/.local/lib/python2.6/site-packages/skein/githubremote.py", line 91, in request_repo
reason = self._request_from_srpm(summary, url)
File "/home/shalkie/.local/lib/python2.6/site-packages/skein/githubremote.py", line 78, in _request_from_srpm
initial_message = "%s\n====\n%s\n%s\n%s\n====" % (self.cfgs['github']['request_reason'], self.cfgs['github']['request_summary'], self.cfgs['github']['request_url'], self.cfgs['github']['branches_default'])
KeyError: 'request_reason'

skein extract: NameError: global name 'name' is not defined

skein extract anaconda-yum-plugins-1.0-5.1.el6.src.rpm
Traceback (most recent call last):
File "/home/shalkie/.local/bin/skein", line 92, in
raise SystemExit(main())
File "/home/shalkie/.local/bin/skein", line 86, in main
args.func(args)
File "/home/shalkie/.local/lib/python2.6/site-packages/skein/pyskein.py", line 775, in do_extract_pkg
self._init_git_repo("%s/%s" % (proj_dir, self.cfgs['skein']['git_dir']), name)
NameError: global name 'name' is not defined

skein grant fails to add user to team

During the grant process, a team is created called <project_name>_git (eg bash_git) which is associated with the repository. The user that requested the repository is supposed to be added to this team. Currently, adding the user to the team has t o be done manually.

Skein shouldn't care about where the repo lives

In other words, don't require that to use a git repo, it has to be in the skein config project_dir. However, extract needs to know where to put the extracted files. Maybe current_dir is a good idea?

Repo Access

I seem to come across the occasional repo, such as words, that I lack the ability to push to.

Skein exits ungracefully when expected information is not found in issues.

When creating a package request with skein there should be generated content in the issues ticket:

Reason for inclusion: Upstream DVD
Description: Provides something
URL: http://www.provisionallysomething.org

However if its arguments are not met it will crash with a back trace when trying to grant and more frustratingly when trying to revoke the request.

While it shouldn't allow granting under these circumstances it should definitely allow revoke. Trying to grant the ticket should result in a more accurate and descriptive message then a back trace.

See the following issue pages:

gooseproject/main#647
gooseproject/main#648

Feature Request - skein revoke repo request

Something along the lines of "skein revoke " which does something as simple as remove the "new repo" tag on an issue so we can submit new requests without worrying about conflicts.

Feature Request: License Check

It would be useful to have the License checked against an acceptable list or at least prompt the user if it doesn't match a known list...

skein install is missing pyskein in devel branch

  1. Cloned new skein, pulling direct from develop branch:

git clone -b develop [email protected]:gooseproject/skein.git

  1. Installed using setup.py script:

sudo python setup.py install

  1. Ran skein by itself:

[skein]$ skein
Traceback (most recent call last):
File "/usr/bin/skein", line 13, in
from skein import pyskein
ImportError: cannot import name pyskein

  1. Ran skein with import option:

[skein]$ skein import ../../el6-rpms/xorg-x11-drv-intel-2.14.0-4.fc15.src.rpm
Traceback (most recent call last):
File "/usr/bin/skein", line 13, in
from skein import pyskein
ImportError: cannot import name pyskein

Skein bugs out when /tmp/projects/ is not present.

Issue:

If the /tmp/projects directory does not exist when skein is run it will error out. Creating the directory will correct the issue (see the attached paste).

Proposed solution:

Skein should check for the directory to exist and create it if it doesn't exist rather then bomb out.

$ ./skein -h
Traceback (most recent call last):
File "./skein", line 55, in
raise SystemExit(main())
File "/home/liveuser/git/skein/skein.py", line 25, in main
ps = pyskein.PySkein()
File "/home/liveuser/git/skein/src/pyskein.py", line 36, in init
logging.basicConfig(filename=sks.logfile, level=sks.loglevel, format=sks.logformat, datefmt=sks.logdateformat)
File "/usr/lib/python2.7/logging/init.py", line 1511, in basicConfig
hdlr = FileHandler(filename, mode)
File "/usr/lib/python2.7/logging/init.py", line 893, in init
StreamHandler.init(self, self._open())
File "/usr/lib/python2.7/logging/init.py", line 912, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 2] No such file or directory: u'/tmp/projects/skein.log'
[liveuser@localhost skein]$ mkdir /tmp/projects
./ske [liveuser@localhost skein]$ ./skein -h
Logging transactions in /tmp/projects/skein.log

usage: skein [-h] {deplist,import} ...

Imports all src.rpms into git and lookaside cache

positional arguments:
{deplist,import}
import import srpm(s)
deplist return dependencies to build srpm

optional arguments:
-h, --help show this help message and exit

Assign imported repositories to a particular github 'team'

In github is the support for teams. Certain teams are allowed to act upon a list of repositories in limited ways (push, pull, etc). Goose project needs to have every imported rpm functionally available to a specific team, Builders. This value may change.

The repository should be added to a team. The team should be configurable and controlled in the skein_settings.py

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.