Utron v2.0
This marks a very big milestone for the utron framework a lot has happened since the last release I think It is better to reflect on the journey to 2.0
.
v1.0
First I should apologize for even releasing this version.I had zero knowledge about semantic versioning( I'm still wraping my head around it).
But what is done, is already done. This version wasnt stable, and It was extremely experimental. I felt like I had this magical hammer back then, and I could hammer the hell out of every problem.
I should take this chance to highlight some of the short comings of the v1 release
- race conditions: I'm refering to issue #67 . The way context was handled was deeply flawed. The handlers were sharing the same context not in a safe way.
- Globals and the limitation of composition : The
App
struct implementshttp.Handler
interface, which means you can compose applications which can benefit from utron features and yet utilize other libraries/frameworks that the Go eco system offers.
I thought, making it easy run the application withutron.Run()
was a good choice, but It was not. This assumes the application is solely a utron application, behind the hood the library had a global utron application.
This came at a greater cost, it was hard to compose the application. For instance, you might only want to use utron Controllers, and use your own models ORM . This also made the API duplicate functions which were wrappers that helped manipulate the global utron application. - Not being modular : This reddit comment explains more about this
These are just some of the things , but there are lots of smaller problems with this version that I will a whole blog post to cover.
Why v2.0?
- Well this is a fresh start.
- The API has changed beyond recognition
- You can use only the parts you like
- More serious
- Fixed all the mistakes of v1
- More examples on how to use
Does this look interesting to you?
If you find this interesting, any ideas to improve this framework are welcome !