Git Product home page Git Product logo

php-rfc-watch's Introduction

PHP RFC Watch

Watches all votes on RFCs and builds a timeline of who voted +1/-1 when.

See: https://php-rfc-watch.beberlei.de/

Installation

git clone [email protected]:beberlei/php-rfc-watch.git
cd php-rfc-watch
composer install
npm install

Init

To quickly get going you can use sqlite as the database. For this edit the .env file and set:

DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db

To initalize the database schemes use:

$ php bin/console doctrine:schema:create

Run

Open two terminals with:

$ php bin/console server:run
$ yarn encore dev --watch

Open up http://localhost:8000.

Import the current state by calling:

$ php bin/console php-rfc-watch:synchronize

Run with Caddy

To run PHP RFC Watch using Caddy HTTP Server see the configuration I use to run it myself:

php-rfc-watch.beberlei.de {
    root /var/www/phprfcwatch/web
    log /var/log/caddy/phprfcwatch.log
    errors /var/log/caddy/errors-phprfcwatch.log

    gzip 
    tls off

    git {
        repo github.com/beberlei/php-rfc-watch
        path ../../phprfcwatch
        then composer install
    }

    fastcgi / /var/run/php/php7.0-fpm.sock php {
        index app.php
    }

    rewrite  {
        to {path} {path}/  /app.php
    }
}

php-rfc-watch's People

Contributors

aydinhassan avatar beberlei avatar benmorel avatar dependabot[bot] avatar dragoonis avatar edorian avatar joostk avatar kelunik avatar lawngnome avatar rican7 avatar salathe avatar tolry 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

php-rfc-watch's Issues

Sort voting options

Some RFCs have Yes/No and some No/Yes which kinda tripped me up while scanning results.. I guess doing any kind of consistent sorting would be a plus, but ideally having Yes first would be great as it's usually like that on the wiki.

Add RSS support

This will be really helpful for watching changes on website. Right now last change was 2 months ago - it is easy to forget about the whole project if you need to visit it manually every time to see that nothing has changed since last visit.

Future Post Dates

Either this tool now predicts the future (awesome) or the timezone friendly display isn't quite right.
screenshot 2015-03-02 09 15 53

GDPR Compliance

PHP RFC Watch scrapes Names and E-mails from the PHP Wiki without asking for consent.

This could be done by keeping a MD5 list of e-mail addresses that have given or denied consent and sending an automated e-mail asking for consent when first discovering a new user.

This is not strictly legal though, as asking for the consent could be seen as already violating users privacy.

Text inside result bars does not have enough contrast

I'm talking about these texts:
image

Here are the contrast ratio:

  • white on green: 1.86
  • white on red: 2.44
  • white on blue: 2.28
  • white on teal (not in the screenshot, but used when there is 4 choices): 1.87

The AA accessibility level asks for a minimum of 4.5 for the contrast ratio.

I see 2 solutions to fix this:

  • use dark text rather than white text
  • use darker background color

Iphp not found

iphp bin/console server:run

Command 'iphp' not found, did you mean:
command 'ipip' from deb ipip (1.1.9build1)
command 'php' from deb php7.4-cli (7.4.3-4ubuntu2.15)
Try: apt install

Rebuild UI with Symfony Turbo

Instead of a React.js frontend I want to rebuild the UI using Twig and Symfony Turbo. There are a bunch of steps necessary for this:

  • Convert React.js templates to Twig, move necessary logic to the server side. #79
  • Remove Mercure integration for server side redirect after community voting. #80
  • Update Symfony and GyroMvcBundle dependencies to Symfony 5.3 or 5.4-dev
  • Introduce a new action to render a single RFC
  • Introduce Symfony Turbo, implement voting with a Turbo frame in-place update

Chrome Notification

Hi @beberlei

What about adding Chrome notifications for this watch? Shouldn't be hard to implement, but I'd like to know your opinion ๐Ÿ˜„

Multi-choice votes don't respect the original order, which is confusing

A yes-no vote always displays the no vote last, meaning you first have the choice for something changing and then the choice for doing nothing. And that's displayed this way on https://php-rfc-watch.beberlei.de/

AFAICT, in a multi-choice vote, the status-quo choice is also generally the last choice in the list (at least, it is in all RFCs I checked recently). But https://php-rfc-watch.beberlei.de/ will reorder these votes. See for instance the Change undefined variable severity to? vote of the Reclassifying engine warnings RFC. The status-quo vote is Keep notice here, but it is displayed second.

Note however that keeping the red color for this status-quo vote is a good idea, to be consistent with yes/no votes.

Show the expected threshold for each vote

PHP votes can either require a majority or a 2/3 majority. It would be great if this info could be available in the display to know whether it is on track of being accepted or no (might not be easy to extract though)

Cancelled votes not handled correctly

For example, Typed Properties is currently shown as in voting, where it's actually on hold.

The logic that detects vote ending currently looks for "this poll has been closed" - it should also consider a vote to be closed if the vote table is no longer present on the page (and/or reconcile the "in voting phase" section on the index page against the RFCs in the database that are considered to have open votes?)

As a side note, maybe looking for a <td colspan=...> might be better than looking for a specific string? Not sure if that would actually make any practical difference but string comparisons for this kind of job always feel wrong to me.

Zombie votes appear in the UI when they are renamed in the PHP RFC

The RFC https://wiki.php.net/rfc/concatenation_precedence only has 2 votes.

But https://php-rfc-watch.beberlei.de/ displays a third one for the block rendering Change the precedence of the concatenation operator (with only 2 votes casted).
Based on the history of the wiki page (see https://wiki.php.net/rfc/concatenation_precedence?rev=1556663802&do=diff), the vote was renamed. And your DB seems to have kept the old name around as well (and number of votes are wrong for the new vote btw).

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.