Git Product home page Git Product logo

semver's Introduction


madewithlove

SemVer

A SemVer checker tool for Packagist.

ci issues pull requests contributors contributions

Built with ❤️︎ and ☕ by heroes at madewithlove.

About

This is the repository for the SemVer checker tool hosted at semver.madewithlove.com.

Tech Stack

Prerequisites

Installation

1. Clone the repository:

git clone [email protected]:madewithlove/semver.git

2. Go to the project folder:

cd semver

3. Install the dependencies:

composer install

4. Create a copy of .env.example:

cp .env.example .env

5. Set the application key:

php artisan key:generate

6. Start the PHP development server:

php artisan serve

Tests

Run the following command:

php artisan test

Contributing

Contributing to this repository is both appreciated and encouraged. If you have any specific questions, we're happy to help out.

semver's People

Contributors

acoulton avatar anahkiasen avatar andreascreten avatar bramdevries avatar bwaidelich avatar dependabot-preview[bot] avatar dependabot[bot] avatar gladx avatar hannesvdvreken avatar jakebathman avatar jdrieghe avatar laravel-shift avatar madewithlove-machine-user avatar nbayramberdiyev avatar sambego avatar tonysm avatar woutersioen avatar yannickdepauw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

semver's Issues

Can't select a package when another package with a more specific name exist

I've stumble upon this issue several time and I don't know if it's something I'm doing wrong or a real issue.

When I try to test constraints for the package roots/wordpress, I'm shown a list of two possible package for that name roots/wordpress and roots/wordpress-core-installer.

If I click on roots/wordpress-core-installer the website correctly update with the results. But if I try to choose roots/wordpress nothing happens (or I should say the website refresh but still want me to "choose" between the two options).

I can't find a way around this behavior.

Support alternate repositories

I like this service a lot, but currently it seems to only rely on Packagist proper, but I often need similar services from https://packages.drupal.org/8/packages.json : (equivalent version exists with /7) It would be nice if the site would default to Packagist, but also support a set of well-known directories like this one. Adding free entry for the directory URL woud probably for more security-vetting, but it seems just adding a list of a few alternate repos should not be a problem.

website https issue

Hi there :)

I'm running into the following problem
https://semver.mwl.be SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

The certificate verification fails, because the Let's Encrypt certificate is expired.

Best, Jens

Version & stability constraints are ignored

With the current version running on the public server, the version & stability constraint selectors are ignored leading to invalid results.

e.g. https://semver.mwl.be/#?package=madewithlove%2Felasticsearcher&version=0.4.1&minimum-stability=dev

should only highlight 0.4.1 but it seems to ignore both parameters and only highlights all stable versions no matter what is selected.

BTW: When debugging the cause I realized that your server outputs debug details (i.e. for 404s) - in case that's not intended...

Represent what composer would add as constraint to front-end

GET /packages/{vendor}/{package}

now returns

{
    "default_constraint": "~1.0",
    "versions": [...]
}

The default constraint can be filled in the second input field if it is empty.

In future versions of composer this will probably change to something with a caret (^)

Test method names

The test method names are displayed weirdly (for example, see this). And my IDE displays it like so:
Screen Shot 2022-08-09 at 17 27 50
I wonder, is this intentional? If not, I'm happy to work on a PR that replaces them all with an underscore.

Support `php` virtual package

It would be neat if this could be used to test version constraints against the virtual php package representing the current PHP language runtime.

Package versions fetching brocken

Currently, the package versions fetching is broken.

When clicking the Search button, the XHR get a 500 HTTP response.

Requesting the URL https://semver.mwl.be/packages/madewithlove/elasticsearcher gives the following result:

Screenshot

image

Exception

ErrorException thrown with message "Argument 2 passed to Packagist\Api\Result\Factory::createResult() must be of the type array, null given, called in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Result/Factory.php on line 81 and defined"

Stacktrace

#24 ErrorException in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Result/Factory.php:103
#23 Semver\Services\Error\ServiceProvider:Semver\Services\Error\{closure} in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Result/Factory.php:103
#22 Packagist\Api\Result\Factory:createResult in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Result/Factory.php:81
#21 Packagist\Api\Result\Factory:createPackageResults in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Result/Factory.php:29
#20 Packagist\Api\Result\Factory:create in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Client.php:221
#19 Packagist\Api\Client:create in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Client.php:173
#18 Packagist\Api\Client:respond in /home/forge/default/vendor/knplabs/packagist-api/src/Packagist/Api/Client.php:98
#17 Packagist\Api\Client:get in /home/forge/default/app/Semver/Services/Repositories/PackageVersionsRepository.php:31
#16 Semver\Services\Repositories\PackageVersionsRepository:getVersions in /home/forge/default/app/Semver/Services/Repositories/PackageVersionsCacheRepository.php:46
#15 Semver\Services\Repositories\PackageVersionsCacheRepository:Semver\Services\Repositories\{closure} in /home/forge/default/vendor/illuminate/cache/Repository.php:292
#14 Illuminate\Cache\Repository:remember in /home/forge/default/app/Semver/Services/Repositories/PackageVersionsCacheRepository.php:47
#13 Semver\Services\Repositories\PackageVersionsCacheRepository:getVersions in /home/forge/default/app/Semver/Services/Packagist/Packagist.php:154
#12 Semver\Services\Packagist\Packagist:getRawVersions in /home/forge/default/app/Semver/Services/Packagist/Packagist.php:65
#11 Semver\Services\Packagist\Packagist:getVersions in /home/forge/default/app/Semver/Http/Controllers/PackageController.php:43
#10 Semver\Http\Controllers\PackageController:versions in [internal]:0
#9 ReflectionMethod:invokeArgs in /home/forge/default/vendor/league/container/src/ReflectionContainer.php:71
#8 League\Container\ReflectionContainer:call in /home/forge/default/vendor/league/container/src/Container.php:211
#7 League\Container\Container:call in /home/forge/default/vendor/league/route/src/Strategy/ParamStrategy.php:17
#6 League\Route\Strategy\ParamStrategy:dispatch in /home/forge/default/vendor/league/route/src/Route.php:92
#5 League\Route\Route:dispatch in /home/forge/default/vendor/league/route/src/Dispatcher.php:62
#4 call_user_func_array in /home/forge/default/vendor/league/route/src/Dispatcher.php:62
#3 League\Route\Dispatcher:handleFound in /home/forge/default/vendor/league/route/src/Dispatcher.php:43
#2 League\Route\Dispatcher:handle in /home/forge/default/vendor/league/route/src/RouteCollection.php:117
#1 League\Route\RouteCollection:dispatch in /home/forge/default/app/Semver/Application.php:57
#0 Semver\Application:run in /home/forge/default/public/index.php:11

Environment & details

GET Data

empty

POST Data

empty

Files

empty

Cookies

empty

Session

empty

Server/Request Data

Key Value
USER forge
HOME /home/forge
FCGI_ROLE RESPONDER
QUERY_STRING  
REQUEST_METHOD GET
CONTENT_TYPE  
CONTENT_LENGTH  
SCRIPT_FILENAME /home/forge/default/public/index.php
SCRIPT_NAME /index.php
REQUEST_URI /packages/madewithlove/elasticsearcher
DOCUMENT_URI /index.php
DOCUMENT_ROOT /home/forge/default/public
SERVER_PROTOCOL HTTP/1.1
GATEWAY_INTERFACE CGI/1.1
SERVER_SOFTWARE nginx/1.10.1
REMOTE_ADDR 78.206.252.251
REMOTE_PORT 37548
SERVER_ADDR 178.62.131.193
SERVER_PORT 443
SERVER_NAME semver.mwl.be
HTTPS on
REDIRECT_STATUS 200
HTTP_HOST semver.mwl.be
HTTP_USER_AGENT Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0
HTTP_ACCEPT text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
HTTP_ACCEPT_LANGUAGE en-US,en;q=0.5
HTTP_ACCEPT_ENCODING gzip, deflate, br
HTTP_CONNECTION keep-alive
HTTP_UPGRADE_INSECURE_REQUESTS 1
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1516270598.7632
REQUEST_TIME 1516270598

Environment Variables

empty

Registered Handlers

  1. Whoops\Handler\PrettyPageHandler

stability-flags override "Minimum Stability" for package

I'm trying to use version with stability-flags, but it does not seem to be matching. For example: https://semver.mwl.be/#?package=monolog%2Fmonolog&version=1.0.*@dev&minimum-stability=stable.

Maybe the stability-flags override the Minimum Stability or auto-change dropdown (after read the docs below, i think its more Composer-like the override method).

Testing with composer, the match is different. Please check composer documentation bellow:
https://getcomposer.org/doc/articles/versions.md#stability
https://getcomposer.org/doc/04-schema.md#package-links

I would like to thank you for this tool, its really useful.

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.