Giter Site home page Giter Site logo

bulletins's Introduction

x84-extras

Add-ons, projects, active systems, etc. for the x/84 Python BBS software

This repo's web presence is x84-extras.github.io, and its raw MarkDown files are located at github.com/x84-extras/x84-extras.

Contributing

We strongly encourage community involvement. The entire point of this repository is to give SysOps and developers a resource that links together community contributions separate from the main x/84 project. That being said, here are a few guidelines that will assist you with smoothly integrating your project with x84-extras:

Keep it neat and tidy

If you want to make modifications to this repository's Markdown files, please be sure to keep them in line with the current style:

  • Lists are to maintain alphabetical order
    • Discard articles like 'The' for simplicity
  • The BBS list should have each column filled in for each table row
    • Non-standard ports should be specified in the BBS list
    • Standard ports can use an X
    • Missing ports should use a dash (-) to denote their absence

Please host your project in its own repo

This repository is intended to be something of a phone book; we don't store, nor do we maintain responsibility for the projects we link to. We are just acting as a centralized collection of links to x/84-related projects.

So, if you want your project to be in our list, create a GitHub repository for it. We would prefer if each project is stored in its own repository, rather than storing a collection of unrelated scripts in the same repository. This will make it far easier for people to stay up to date with and focus their interest on particular scripts and resources rather than having to muddle their way through a blob of scripts, art, torrents, Dockerfiles, and the like.

We are not opposed to linking to repositories off of GitHub (like those on BitBucket), and we have no qualms with linking to FTP directories, static pages, and such; but we always prefer GitHub repositories to keep the community homogenous in terms of workflow and collaboration.

Rules/Guidelines

To make it easier for people to pick up your project and use it/integrate it with their x/84 system, please be sure to follow these rules and consider these guidelines for your project:

Required

  • Installation instructions/documentation
    • If integrating your script requires modifying another script, be as specific as possible
  • If your project has Python dependencies that are not included in x/84 by default, include a pip-friendly requirements.txt file with specific versions for each module (do not use version ranges or fail to include version numbers)

Suggested

  • Please use syntax-highlighted code blocks in your README (and similar files) when providing examples of source code
  • Please create self-contained mods that can be used as git submodules
  • Please allow for customization of your scripts through default.ini settings as much as possible
  • Please add a LICENSE to your project (see Licensing below); it is in your best interest to do so!

Self-contained mods as git submodules

The idea here is that eventually, we can standardize on a way to pull new mods into an x/84 system. If they're all hosted in git repositories, the simplest and most efficient way to accomplish that is to use git submodules. Each project repository is self-contained, and unless configured via default.ini settings to do otherwise, uses relative paths to load all of its resources (such as art files). See the Rumors script for an example of this.

The Rumors mod can be added to a system and maintained independently as either a clone or a submodule:

Clone

First, the repository is cloned into a subdirectory of the system's scriptpath:

$ cd /path/to/x84/scripts
$ git clone https://github.com/x84-extras/rumors

Then, main.py is modified to add a menu entry for loading the rumors.py script:

gosub('rumors/rumors')

Submodule

First, the x/84 scriptpath must itself be a git repository (though it does not need to be linked to an external source like GitHub):

$ cd /path/to/x84/scripts
$ git init .

Next, the Rumors mod is added to the scriptpath repo as a submodule:

$ git submodule add https://github.com/x84-extras/rumors rumors

Finally, just like with the clone method, we modify main.py to load the rumors.py script:

gosub('rumors/rumors')

As a Python package

If you're setting up your mod to be useable as a clone/submodule, and you have some variables or methods you want to expose to other scripts, you should include an __init__.py file in your project that uses __all__ to expose the parts you've chosen. See Importing * From a Package at docs.python.org for more information.

If you only expect SysOps to manually copy your script into their scriptpath, then there is no need to do this (since the scriptpath itself is already in the syspath).

Keeping mods up to date

In the case of the clone scenario, you must do the following for each and every mod:

$ cd /path/to/x84/scripts
$ cd modulename
$ git pull

However, with submodules, you can act on them recursively:

$ cd /path/to/x84/scripts
$ git submodule update --init --remote --recursive

Licensing

You may use any license you see fit for your project. However, you must understand that by including a link to your project, we are not incorporating your project into x84-extras--merely pointing to a resource--and so we are not bound by any viral clauses in the license you have chosen (such as the GPL).

Many of the x84-extras scripts use the MIT license, as does x/84 itself.

bulletins's People

Contributors

ericolito avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

cloudxtreme

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.