CrowdHailer / raxx

Interface for HTTP webservers, frameworks and clients
https://hexdocs.pm/raxx
Apache License 2.0
401 stars 29 forks source link

Extract parts of the project that should be separate extensions #118

Closed CrowdHailer closed 5 years ago

CrowdHailer commented 6 years ago

Reduce the project to be focused on the core value of Raxx providing an interface between frameworks and servers.

Checklist

Optional Checklist

Extracted things moved to Raxx.Kit

Create a middlewares dir in Raxx.Kit containing each middleware as a separate mix project.

Maybe a better name is plugins extensions, not everything will be a middleware.

This will probably make Raxx.Kit the project we direct people to to get started with Raxx. I think I am ok with the idea of Raxx.Kit becoming a micro framework.

nietaki commented 5 years ago

Handful of comments:

  1. agreed about removing the mount field in the request object, it's probably not the right level of abstraction for it

  2. Do I understand correctly that you want to remove path property on the request in favour of the raw_path? I'm not sure about that one - it's been a staple of Raxx, a useful tool and had the benefit of mapping to the raw path pretty 1:1, with no information loss. What's the reasoning here?

  3. Do I understand correctly that you're thinking of moving the middlewares / general purpose tools to Raxx.Kit? As Raxx.Kit is right now, it's just a project generator, and not really a package you would download and use as a library. I think it's good this way and trying to combine them would be confusing to say the least. If we put the commonly used middlewares in Raxx.Kit we'd either need to make it a library, or rely on copying and pasting them behind projects, with pretty inconvenient approach to code reuse and versioning. I think common tools should go in a separate package (raxx_tools?).

  4. Similarly, I'm not sure I understand what you mean by "Create a middlewares dir in Raxx.Kit containing each middleware as a separate mix project."

  5. I'm really not up to date with EExHTML and Raxx.View, so it's hard for me to have an opinion right now.

I'm probably misunderstanding some things or reading too much into some notes, please correct me where I'm wrong.

CrowdHailer commented 5 years ago
  1. let's leave this for now. I think you are probably right we should leave it, but just not 100%
  2. I'm thinking of putting them in the raxx.kit git repository, but not as part of the raxx.kit elixir project. see https://github.com/CrowdHailer/raxx_kit/compare/master...raxx-logger
  3. just a directory for independent elixir projects inside the raxx.kit git repo
CrowdHailer commented 5 years ago

This issue is probably going to be closed as raxx 0.18.x rather than 1.0 I think as there are several changes we should do one more cycle before committing to 1.0 release