Chevereto v4.0 "macanudo" announcement

Rodolfo

⭐ Chevereto Godlike
Chevereto Staff
Administrator
Dear all,

Blog: Chevereto Macanudo

With release v4.0 (macanudo) I'm improving on coqueto with the addition of improved third-party login support (which was delayed since V3.17) and the addition of the user based API.

Macanudo is all about making Chevereto more open to its users, hence the added login providers and extended API options. With macanudo not only you, but your users will be all able to craft anything on top of the Chevereto API.

Improved third-party login system​


I'm implementing hybridauth allowing to support many login providers:

Code:
Apple Amazon AOLOpenID Authentiq AutoDesk BitBucket Blizzard Discord Disqus Dribbble Dropbox Facebook Foursquare GitHub GitLab Google Instagram LinkedIn Mailru Medium MicrosoftGraph Odnoklassniki OpenID ORCID Paypal PaypalOpenID Reddit Slack Spotify StackExchange StackExchangeOpenID Steam Strava SteemConnect Telegram Tumblr TwitchTV Twitter Vkontakte WeChat WindowsLive WordPress Yandex Yahoo QQ

This will be great to spread Chevereto usage as it extends from 4 providers to 45 (1025% increase). More login providers is a must have to reach all corners of the world as not everywhere people uses Twitter or Google. With these new providers we will open the service to many users worldwide.

User based API​


User based API means that each user has unique API key(s) that can be used to allow other devices to interact with the system in behalf of the user, namely user interfaces.

You will be able to command all actions present in Chevereto but from your own user interface instead of just the built-in HTTP web endpoints. It will dramatically increase the use case, imagine use it as an asset manager or to replace the WordPress backend upload API with it. The nature of the stuff that we will be able to build on top of this is limitless.

Improved testing standard​


Macanudo introduces an improved testing standard in which the API operations are executed as a demo website with user activity (giving likes, creating content, deleting albums, etc.), this makes Chevereto V4 way easier to maintain and more reliable than ever as it gets fully tested. Tested Chevereto implies a dramatic decrease of bugs and incidents. You will get more stable and reliable software, more quality, less support expenses.

With this new testing standard I will finally erase most of Chevereto's technical debt, making it a high-grade commercial product.

Release dates​


Chevereto V4.0 (macanudo) will be released in September 2021, betas in September 2021.
 

lovedigit

👽 Chevereto Freak
Beta tester
I am really looking forward to User based API. It will help me create mobile app for my website.
 
Last edited:

amit

Chevereto Member
waiting for this great upgrade i am waiting as soon as its available i will purchase it and start my new website currently i have stopped my website just waiting for this major release :)
 

Kirbeh

Chevereto Member
Beta tester
I can't wait! I can get rid of my custom oauth login hooks 😜

So excited for the massive update!
 

Rodolfo

⭐ Chevereto Godlike
Chevereto Staff
Administrator
Hey there, work in progress report here.

In V4.0 the process starts by replacing the internal API at app/routes/route.json.php with a Chevere based API. Basically, we go from this:

1626296852236.png

^ We call it "El fideo" in the HQ

To this, where each endpoint is wired now to controllers and it represents the translation from V3 to V4 instructions. As you may notice, there's a V1 API (which is the API currently documented) and a V4 API which is how I arbitrary named this API version, also consistency with the software versioning.

Now that I've all these elements mapped I need to rip the code from route.json.php (each case in the code above) into controllers now. In this part the instructions will be just translated from one system to another and it will take a while, is just a lot of code.

I will keep posting updates, by the way let me know if you want to be added to beta testers as I will enable 100 more seats.
 

lovedigit

👽 Chevereto Freak
Beta tester
Do we have to apply separately to beta test v4, or existing beta tester will be able to volunteer automatically?
 

Rodolfo

⭐ Chevereto Godlike
Chevereto Staff
Administrator
Do we have to apply separately to beta test v4, or existing beta tester will be able to volunteer automatically?
Is the same beta program so all those already on beta will get V4 beta.

it will be free upgrade for v3 users as your site say https://chevereto.com/pricing? what other changes is planned to add?
The V4 upgrade is free only for new purchases, old purchases will have to pay a one-time fee to upgrade.

will it work a bit faster?
V4.0 should be a bit faster than V3 as V4.0 is PHP 8 native and the system now uses application cache. On top of that, for V4.X we will be adding several cache layers and the result should be a system dramatically faster than the one we have today.
 

qiu337044737

Chevereto Member
Beta tester
Hello, I want to contribute to the development of the beta program, to help improve the experience, I hope you can pass my application
 

Rodolfo

⭐ Chevereto Godlike
Chevereto Staff
Administrator
Update

Pretty much about a month since last update (codewise) and sorry for the low update rate but the previous weeks have been very time consuming and I've skipped reporting. Also, I'm upgrading my dev infra and I'm now using macOS with M1 chip. This has pushed new development in docker multi-arch builds (which I haven't announced yet) and that also took me time from V4.

But enough chatter, here's the ongoing development report for Chevereto V4.0!

Multi-architecture

Support for different CPU instructions is now a thing for V4.0 and our official Docker imaginery will be amd64 and arm64v8 compatible. More architectures will be added based on demand, on usage requirements. Why I picked those by default? I run machines with these so I provide support for what I use. In any case, feel free to suggest other architectures 😊.

Routing definition

For V4.0 I will introduce a new routing spec for declaring routes in the system. Remember the route.json.php file? That's part of the routing system, in which case that file define all what /json does. That system is being replaced with an endpoint to controller logic.

Wow, sounds great... But is better if you see it, we go from this:

1628343028637.png

To this:

1628343278260.png

Routes are now defined on file(s), and it allows to easily declare route endpoints (a path + HTTP method + a Controller for that method). This makes way more easier to understand how the system works, if you have ever tried to find something in V3 you will surely welcome this change.

With this we now can easily create new routes, or move something from one path to another.

Controllers

The Controller is in charge of defining parameters for client requests made to the application. The file below is V4's representation of route.api.php taking input parameters.

The controller layer defines what it does at getDescription, the __ you see is our new translation system, that stuff is replacing the old _s, _se, _n, _ne gang used to declare translations, the new system is more flexible (will talk about that on another update).

1628344250054.png

If you pay attention to getParameters you will notice that format parameter takes a regex, that enables already a filtering layer for incoming requests.

As you may see there's a lot of PHP 8 (I like to call it The Ocho) on V4. Besides the clever usage of named arguments, there are attributes which in the case of the controller example above it links to a Workflow provider.

A what provider??!

Workflow Provider for Controller

At line #24 in the code above there's the relationship attribute that links to the UploadPostWorkflow, this is a simple class that using getWorkflow() provides a set of default instructions (Actions) to carry in sequential order:
1628345493335.pngI think that the logic is very expressive, you get all the steps in order and a very descriptive instruction set... What I wanted to achieve is to allow anyone to easily understand (therefore extend) what the system does. The new logic starts from the very basic elements, and easily drives you towards exactly what the system is doing.

Actions

There are also actions, in fact... that's the actual logic. Here's how the system goes: Routing > Controller > Workflow > Action.

Actions are the most basic form of functions in the system, it defines parameters and arunnablee logic that's all. These exists in a deeper level, is not a "surface" element as Controller.

1628346133354.png

What I'm achieving with actions is that I'm creating disposable sets of useful "things" that the application can do. Nothing stops you from creating your own routes, map to your own defined workflows, use the default actions or provide others, is really flexible.

Progress status

Being honest, I'm quite delayed for the September goal but I will get a better idea by the end of this month. There's a lot of new development (specially in routing) which is allowing me to gain more speed and that was introduced just 2 days ago.

I will dare to say that V4.0 is 20% done and likely I will take some shortcuts because I really don't want to delay this any further.

Hope you like the heads up and thanks for your support and patience!
 

JakeSully

💖 Chevereto Fan
Beta tester
Will v4 have new unique look that looks different to v3 or did you choose to keep old design from v3 but on v4 as well?
 

Rodolfo

⭐ Chevereto Godlike
Chevereto Staff
Administrator
Will v4 have new unique look that looks different to v3 or did you choose to keep old design from v3 but on v4 as well?
Hi,

Kindly note that this topic is for V4.0 (release), not for V4 (versioning). For V4.X there will be a theme update that will add some neat user customization features and color schemes, it should happen before video.

As for V4.0, there won't be any theme change or upgrade as such upgrade already happened in V3.20. This was a most needed catch up to keep the old web interface operative and functional. Perhaps you don't tell the difference, but certainly is way faster than the previous one and the effects and its performance are way better driven for mobile devices.
 

Rodolfo

⭐ Chevereto Godlike
Chevereto Staff
Administrator
Hey there, almost time!

I will release V4.0.0.beta.1 on September 30, available for all customers (no need to request access for it). I will carry up to 3 months of beta testing before shipping V4.0.0.

We can afford this new initiative as V3.20 is stable and mature to allow room for user provided feedback at this development stage. This evolves from the old formula where we shipped the software "done" and I nagged a while about compatibility issues. We're trying to pin these server issues early in development and that's why I will beta release that long.

We're getting closer!

Thank you for your support.
 
Top