Must read Building the next-gen Chevereto

Aljawaid

Network license
License owner
Update 2019-11-06


Honestly I don't know if there's any crowd for getting the API first so please let me know if you care about that.

Hope to post more updates soon.
API in terms of being able to publish to chevereto (with the usual options of uploads) and pull some sort of list or gallery from chevereto would be useful for me. I wouldn't be desperate for it as soon as v4 is released but by the sounds of the way v4 will become, I think API should be available within the first six months of the v4. Having said that, earlier reading about a possible desktop client (to be able to publish direct to chevereto), would be an awesome useful productive solution if you were to develop it first. Just my thoughts :)
 

Rodolfo

Chevereto Developer
Chevereto Staff
Hey there,

Long time since last report, first things first:

Are you considering adding the ability to upload videos in addition to images?
Yes, I'm considering to add support for video formats. It is something that brings a lot of content and I will like to see how it goes with that.

I think API should be available within the first six months
Sure thing!

2020-01-20

Development is ongoing, is just that it is a ton of work so I try to focus on that rather than show and tell. There will be time for that.

2019 was a very busy year:

Screenshot_20200119-213200__01.jpg
From rodolfoberrios

Release 3.14 dragged me a little bit, but it was of the highest priority to patch the security vulnerabilities affecting 3.X. You can learn about it here.

The development is ongoing and I'm peeking at delivery options (refers to how the software gets provisioned). I like the idea of ship something to where you don't worry about the software infrastructure.

The code looks nice (totally impartial opinion, at least to my eyes) and I'm adding more tests to complete the code coverage. I've added support for php 7.4 and typed properties, which suit me very well as I'm doing it strong typed.

I also got the domain chevere.org, it will be the home of the framework and it will be basically its documentation. That will include a function reference and instructions on the system components.

Hope to keep the same rate, wish to have it ready now.
 

mkerala2

Network license
Beta tester
Thanks for the update and I can see you have made good progress. I am looking forward to the video upload feature.

Would you also consider adding a video to GIF converter? Some of the top image hosting sites like giphy, gycat and imgur has added this due to increased demand for GIF.
 

Rodolfo

Chevereto Developer
Chevereto Staff
Would you also consider adding a video to GIF converter? Some of the top image hosting sites like giphy, gycat and imgur has added this due to increased demand for GIF.
Thanks for the suggestion! It will be a nice addition to have the ability to convert video segments to animated images (gif, webp). Also, it will be nice to get an editor, a meme generator, etc. Basically, the goal is to get everything.

To be honest, I don't care that much about the specific application features at this time but its supporting architecture. This is because the needs around media sharing varies a lot so my focus is the system extensibility, not X given feature.
 

Rodolfo

Chevereto Developer
Chevereto Staff
2020-02-02

Code coverage is being improved, this is a measure of the code actually tested, therefore is a measurement for quality. I think that I must explain what are these tests and code coverage terms that I will use in this entry.
  • Test / Testeable code
    It refers to code that can be tested in any given different environment (isolated or not) and it allows to detect inconsistencies in the code. Testeable code means higher quality code, which is also easier to maintain.
  • Code Coverage
    This is a measure that accounts the code execution, if a line is executed then is covered. Coverage indicates how meticulous tested is the alleged code.
The following image illustrates the code coverage, which is expressed in percent (%). You can also see other relevant information, like the size of the code which is 4K total lines to date (not including tests).
1580667309105.png

Code coverage is harder than I expected, mostly because it is just a slow process sometimes. There are days where I progress 5% vs others where I merely get .5%. The slow progress days are because this accounts lines, not complexity. Sadly, I don't have graphs on this yet (more data required). Code coverage is being reported at https://codecov.io/gh/Chevereto/chevere and the automated builds are on travis https://travis-ci.org/Chevereto/chevere

I will keep reporting on this, thanks for reading and for caring about the process.

Rodolfo.
 
  • Like
Reactions: twm

huyamba

Founder license
License owner
Thanks for the suggestion! It will be a nice addition to have the ability to convert video segments to animated images (gif, webp). Also, it will be nice to get an editor, a meme generator, etc. Basically, the goal is to get everything.

To be honest, I don't care that much about the specific application features at this time but its supporting architecture. This is because the needs around media sharing varies a lot so my focus is the system extensibility, not X given feature.
i think it's must have feature in 2020, if new chevereto will have such feature it will be the best image sharing script ever
 

Rodolfo

Chevereto Developer
Chevereto Staff
2020-02-10

Coverage keeps getting better, above 70% now. The image bellow shows a report for all the current work in progress.
1581357247320.png

Elements like Hooks or Middleware need to be tried at application context, I'm delaying the checks for now. Controller/s require a re-made, simple as that. For the API, I want a JSON API implementation for handling file related tasks, eventually with a GraphQL endpoint to provide a flexible data retrieval. Providing this kind of API will allow to create very flexible and unique server applications, with more ease. I'm still looking at libraries for this purpose.

There are other elements like Console (which is not shown in the report) which need to be written from scratch. In this regard, the system will provide a complete console application, with commands to turn on/off runtime settings, build, rebuild, analyze, list, logs, etc. The idea is to make this component extensible to the application settings, like enable/disable guest uploads or toggle a plugin setting.

Finally, there are elements that will get deprecated like ArrayFile. This was a wrapper on top of FilePhp. It will be replaced by object data structures.

On a different subject, building has been adopted at Travis and GitHub Workflows. This refers to build jobs carried by virtual machines, in which the machine gets configured like this:

.travis.yml:
dist: bionic
language: php

php:
  - 7.4
  - nightly

matrix:
  allow_failures:
    - php: nightly

cache:
  directories:
    - $HOME/.composer/cache

before_install:
  - phpenv config-add chevere.ini
  - composer validate

install:
  - composer install --prefer-dist --classmap-authoritative

script:
  - vendor/bin/phpunit --coverage-clover=build/coverage/clover.xml

after_script:
  - wget https://scrutinizer-ci.com/ocular.phar
  - php ocular.phar code-coverage:upload --format=php-clover build/coverage/clover.xml
  - bash <(curl -s https://codecov.io/bash)
The above is a simple example, you can also add more PHP versions or other OS. This automatizes the testing process and many other stuff that I have not tried yet.

Hope to keep the steady work!

Cheers,
Rodolfo.
 

bastien

Network license
License owner
I've done a lot of translation work for the Dutch language. Does everything have to be done again for version 4? I hope not, I'm sure there will be additions and that's not a problem of course.
 

Rodolfo

Chevereto Developer
Chevereto Staff
I've done a lot of translation work for the Dutch language. Does everything have to be done again for version 4?
Currently there are more than 20 translations and it will be a shame to lost these. I think that most of the translation contents will be preserved.
 

Rodolfo

Chevereto Developer
Chevereto Staff
2020-02-20

Code coverage is about 90%, several bugs have been addressed aswel. At this time I'm working on the hook system that will allow us to customize the built-in functionality in a very high degree. This will grant a plugin ecosystem for third-party developers.

The framework still lacks about 4 crucial components (console, api, app, controller) so it is still not production ready. Hope to make progress in the following weeks.

The mainteability rate of the framework is 1 week! estimated by CodeClimate https://codeclimate.com/github/chevere/chevere which is very low if you consider that 1 month is already low. I now notice that the new code quality is way higher than the current accepted industry standard, which means that the framework will stand up due its strong base, developer friendly and feature set.

Hope you like the update, back to work now.
 
Top