Skip to content

Latest commit

 

History

History
66 lines (49 loc) · 3.11 KB

CONTRIBUTING.md

File metadata and controls

66 lines (49 loc) · 3.11 KB

Contributing

Running the Code

I go into more detail in the Wiki but basically, you can just

  • Create a .env file with your configs (see here)
  • Create a feeds.txt file with some links (see here)
  • cargo run

You should see HTML dumped in your console.

Potentially Interesting Parts of the Code

  • Email stuff happens in the email folder. For an example implementation, you can check sendgrid. The implementations are aggregated here
  • Feed parsing happens in the xml folder and specifically in the mod.rs file.
  • blog.rs contains the internal representations of the web feeds.
  • lib.rs contains most of the "business logic" of the project which is called from main.rs that in turn contains some boiler-plate needed to spin the code up both locally and on AWS Lamda.

Issues

My feed isn't working, what's wrong?

I based my implementation around the official RSS specification and the Atom Syndication Format, if you find a particular feed that seems to be causing issues there might be an inconsistency on their part (or in my implementation) or it might just be that some of the optional attributes that I consider necessary (a link or a date for example) are not present.

In any case, open an issue and I'll get back to you :)

Something Else is Wrong!

I'm very new to rust (as in been doing this for 2 weeks now) and that plus the fact that I am overengineering some aspects of the project purely for exploring the language means that there will very likely be a lot of random bugs baked in the project. That said, I have been running the code since day 0 and if I do find any bugs, you will be able to see them here.

I would really like to fix any potential issues that my code might have so make sure to submit bug reports preferably with reproducible examples!

Contributing to the Codebase

Make sure to detail your desired changes in either an issue or a discussion first, I will try to reply to them, and then you can go ahead and start working on your fork.

The way the whole different feed format is a bit weird so let me explain how that works.

I wrote a pretty lengthy blog post on the project here where I explain most things in depth so feel free to use that as a sort of external documentation if you have questions about some part of the project. If you don't find what you're looking for then make sure to open a discussion and I'll do my best to explain it to you.