• Stars
    star
    162
  • Rank 232,284 (Top 5 %)
  • Language
    PHP
  • License
    MIT License
  • Created about 10 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Composer repository implementation for ZIPs.

Release Belt — Composer repo for ZIPs

Tests Status Latest Stable Version PHP from Packagist PDS Skeleton

Release Belt is a Composer repository, which serves to quickly integrate third–party non–Composer releases into Composer workflow. Once Release Belt is installed and you upload your zip files with their respective version number, Release Belt does the rest.

Given the following folder tree:

releases/wordpress-plugin/rarst/plugin.1.0.zip

It will serve the following Composer repository at /packages.json automagically:

{
    "packages": {
        "rarst/plugin": {
            "1.0": {
                "name": "rarst/plugin",
                "version": "1.0",
                "dist": {
                    "url": "http://example.com/rarst/plugin.1.0.zip",
                    "type": "zip"
                },
                "type": "wordpress-plugin",
                "require": {
                    "composer/installers": "^1.5"
                }
            }
        }
    }
}

Installation

1. Install the project

Release Belt is a project type Composer package. It is recommended to use Git checkout to keep up with updates more easily.

There is a helper Composer script provided that tries to fetch latest stable version and performs Composer install.

Install

git clone https://github.com/Rarst/release-belt
cd release-belt
composer belt-update

Update

composer belt-update

2. Place release ZIPs into releases/ directory

The directory structure should be: releases/[type]/[vendor name]/[release zip file].

A [type] could be:

3. Configure a web server

The public/ directory should be used as web root and index.php in it as the file to handle requests.

Please refer to web server configuration in Slim documentation and/or your web hosting’s resources for setup specifics.

Visit home page and /packages.json in a web browser to check if it is working.

Use

Once Release Belt is installed you can add the repository to the composer.json of your projects.

Release Belt home page will automatically generate some composer.json boilerplate for you to use.

Configuration

You can configure Release Belt by creating a config/config.php file, which returns an array of options to override.

See config/configExample.php for the annotated example.

Authentication & permissions

Release Belt implements HTTP authentication to password protect your repository and control access to specific packages. You can configure it via users configuration option.

There is a bin/encodePassword.php command line helper included for hashing passwords:

>php bin/encodePassword.php foo
$2y$10$3i9/lVd8UOFIJ6PAMFt8gu3/r5g0qeCJvoSlLCsvMTythye19F77a

If authentication is enabled, Release Belt home page will automatically generate auth.json boilerplate for you to use.

F.A.Q.

Why not Packagist/Satis?

Composer infrastructure is awesome, but it expects vendors that are willing to play nice with it.

Release Belt is a solution for unwilling vendors and it was faster and easier to build a dedicated solution from scratch.

Why not artifacts?

Composer artifacts require composer.json in them. This is for releases that don't even have that.

But is it web scale?

No.

License

MIT

More Repositories

1

laps

Light WordPress profiler.
PHP
544
star
2

fragment-cache

WordPress plugin for partial and async caching.
PHP
140
star
3

wps

WordPress plugin for whoops error handler.
PHP
125
star
4

wporg-client

Standalone HTTP client for public WordPress.org API.
PHP
73
star
5

meadow

WordPress templating DSL based on Twig.
PHP
72
star
6

wpdatetime

Extension of PHP’s DateTime and DateTimeZone classes for WordPress context.
PHP
63
star
7

update-blocker

Lightweight generic blocker of updates from official WordPress repositories.
PHP
54
star
8

hybrid-wing

Toolkit theme for WordPress, based on Hybrid Core and Twitter Bootstrap.
PHP
30
star
9

error-log-dashboard-widget

Robust zero-configuration and low-memory WordPress plugin to keep an eye on error log.
PHP
30
star
10

advanced-hooks-api

Set of (experimental) wrappers that allow to hook more elaborate WordPress events without coding intermediary functions
PHP
28
star
11

phpcs-cognitive-complexity

Cognitive Complexity implementation for PHP_CodeSniffer
PHP
26
star
12

toolbar-theme-switcher

Adds WordPress toolbar menu that allows users to switch theme for themselves.
PHP
19
star
13

composer-in-wp

Composer in WordPress site source
Ruby
16
star
14

wprss2hugo

WordPress eXtended RSS to Hugo importer.
PHP
10
star
15

seam

Lightweight site renderer for Markdown content and Twig templates
PHP
5
star
16

ComposePOT

WordPress MakePOT reboot.
PHP
5
star
17

locate-vendor

Helper for vendor directory location in Composer.
PHP
5
star
18

dnd-lookup

A small search web app for D&D 5e SRD
Vue
4
star
19

holder-wp

Quick and flexible placeholders, created right in browser.
PHP
4
star
20

php-calendar

Calendar feeds for PHP versions releases and support.
HTML
3
star
21

chill-config

Experimental YAML config handler for WordPress
PHP
2
star
22

sg-cachepress

The SG CachePress is a plugin that allows you to use the SiteGround dynamic cache and Memcached to optimize the performance of your WordPress.
PHP
2
star
23

github-actions-for-ci

JavaScript
1
star