Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to PodIRCBot #149

Open
Christopher-Chianelli opened this issue Nov 25, 2019 · 5 comments
Open

Migrate to PodIRCBot #149

Christopher-Chianelli opened this issue Nov 25, 2019 · 5 comments

Comments

@Christopher-Chianelli
Copy link
Contributor

We have a bot that love containers, yet does not run in a container. I propose we migrate to https://github.com/Christopher-Chianelli/PodIRCBot when it become stable. This have several advantages:

  • When one service crashes (say !ka last 0), the other services remain unaffected.
  • Each service can be written in its own language! Just read events from stdin, and write responses to stdout.
  • No more VileBot.java ugliness; the proxy doesn't need to know about each service, as the service connect itself to the proxy via a static url.
  • Each service's config is in its own file.
  • Runs on OpenShift, which runs on Kubernetes, which is run by containers!
@cuijulian
Copy link

@Christopher-Chianelli Firstly, thank you for initiating such a huge refactor! Your contributions to this project are greatly appreciated. I personally don't know much about this new architecture, so I will be learning quite a bit as this refactor continues. Looking over your points I don't see many cons, and the pros are substantial.

One concern I have though is how this refactor will be done on GitHub. We should keep the project in the oldterns/VileBot repository due to organizational reasons (keeping previous maintainer rights, not lose open GitHub issues, keep the git history of the repo, etc). Not to mention having two VileBot1 repos would be confusing to future contributors. It would be preferred to do this refactor module by module, rather than migrating the entire project at once (ie. submit a separate PR for each refactored portion to this repo). It will be much easier to spot potential issues if we isolate them during the refactor. I don't know how feasible this "module-by-module" approach is for your planned new architecture, but I maintain that this project stay in oldterns/VileBot. WDYT?

@Christopher-Chianelli
Copy link
Contributor Author

@cuijulian The https://github.com/Christopher-Chianelli/PodIRCBot is intended to be a base for all containerized IRC Bots; no VileBot1 specific code will be in it. Once it is stable (that is, actually have a proper API, multiple templates and testing), I will either add PodIRCBot at a git submodule or make its scripts work with URL's. Once that done, each function/service VileBot1 provides will be in its own folder (in it own programming language). I recommend the refactor be done on a separate branch (maybe the "containers" branch?)

@cuijulian
Copy link

@Christopher-Chianelli This makes sense, I misunderstood what you meant by "migrate to", but I think I have a better idea of what you mean. My gut feeling is making PodIRCBot have scripts with URL's is preferred over making it a Git submodule of oldterns/VileBot, since the latter may unnecessarily cause confusion in the GitHub project structure, especially for new contributors. But this decision is open for debate, I haven't worked with either option before, so my opinion should be taken with a grain of salt.

I agree with the refactor being done on a separate branch in oldterns/VileBot. I can create a feature branch in the upstream repo where future PR's for this refactor can go. As for the branch name, how about containerized-bot?

@Christopher-Chianelli
Copy link
Contributor Author

containerized-bot sounds good for a branch name. Some scripts need to be copied from PodIRCBot to this repo (namely the build script).

@cuijulian
Copy link

Branch created. Feel free to create a PR to it that adds the scripts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants