Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/freerange/sauron

The All Seeing Eye
https://github.com/freerange/sauron

Only "primary" message index records exist, so no need to group.

7acda1b28970341c8d83505ce01e97e95b9fa709 authored almost 13 years ago
Remove redundant columns from message index table.

This forces us to obtain the mail-identifying account & uid from the
first mail index record on ...

737236e6a57bdbf9056a3d3f1a7f76357603e1e7 authored almost 13 years ago
Remove duplicate data from message index table.

We haven't attempted to write a `down` method for this migration,
because we don't think it's wo...

13731f2ae74b5bade101b17e5961474a1d8d863e authored almost 13 years ago
Avoid creating duplicate data in message index table.

- We introduced an "integration" test that checks the behaviour we care
about when putting dat...

a32b9980cf0116e028d814d27eadc3f89fca5c7c authored almost 13 years ago
Change mail index uids to be integers not strings.

We didn't notice message index uids were integers when we introduced the
mail index uid column a...

15a8f03571df0048dec3a89b50b69250c8856d49 authored almost 13 years ago
Use 'mail' rather than 'message' when dealing with mails.

This brings usage of message and mail closer to that outlined in doc/README_FOR_APP.

e7afc76631ff5bb96734f84e0ee8d60a362d7e72 authored almost 13 years ago
Nice-ify the mail import.

We don't want it to kill the machine whenever it has to do some catching
up.

3aed2da48fc04909734cec8df64a0eed02760323 authored almost 13 years ago
Make `lockrun_rake` more like the `rake` whenever `job_type`.

dd1f9c4b06612178c259ba8a640eacbee71956ad authored almost 13 years ago
Ensure that a new mail:import task does not start if another is running.

- This is a bit of a bodge, especially setting the `job_template` to
`nil`, but I hope it should...

0400c65ef26d60372a85528b68baae7d57c4c205 authored almost 13 years ago
Improve reporting of errors during mail import.

- Write the original exception backtrace in the log.
- Write the original exception class to std...

d8ec08db29448fae950f1a133fb1608693aa7bc6 authored almost 13 years ago
Avoid N+1 queries for mail index records on message index record.

3df432caebd56843c67b12cb19b26e5969944ba3 authored almost 13 years ago
Use mail index records for account & uid related queries.

The plan is to remove the account & uid attributes from the message
index records, so we need to...

3e16cd27502864c1620385a32d8e654a76269193 authored almost 13 years ago
Build all Message instances using only "primary" message index record.

- ActiveRecordMessageIndex.find_all_by_message_hash is now redundant and
has been removed.
- M...

364ebd8f27c741b34f3c62df4e95250680874203 authored almost 13 years ago
Simplify test: only pass "primary" message index record to constructor.

cfbe5fd55230c680d95cb8f4fbb7033999d684c2 authored almost 13 years ago
A Message only needs to know about the primary message index record.

By introducing Message.build we can isolate the underlying changes to
the Message and reduce the...

c553030e824db5eabf83d814076f9b3dc088f097 authored almost 13 years ago
Use message index record #recipients.

- By changing the setup to pretend that #delivered_to is no longer
available on message index re...

7fcb4f92b3e523113c507579610594c2e4dec20d authored almost 13 years ago
A "primary" message index record has many mail index records.

Eventually we want to be able to obtain all the recipients for a given
message by querying its "...

46f6c3d1762884683175066e3cf2a0d08ef6b4d4 authored almost 13 years ago
DRY up Message#raw_message using existing Message#index_record method.

0529f05024fd256b138a4347ceb03972c021a844 authored almost 13 years ago
Rename MailIndex to MessageIndex.

fc2ddabd5209a9ff215ad3b3d7b1d9ed634f0769 authored almost 13 years ago
Rename `mail_index` table to `message_index`.

d526e771db72e76a180ca9f2bc773317130e9660 authored almost 13 years ago
Add db index to improve performance of messages index page.

At the moment we are doing a query for each of the 500 messages returned
by ActiveRecordMailInde...

e4909ec8a4aa5329dad2e446dde1dfec6bfeb632 authored almost 13 years ago
Remove temporary script which has been run on server.

f594879bcbd1d918efaccc0cf0900b8f160f8f25 authored almost 13 years ago
Remove temporary script that has been run on server.

75a20eb005c729a2091adaee5494a1df2dc62eb6 authored almost 13 years ago
Only need to parse the first raw mail for a message.

Since we changed the implementation of Message#recipients in
1a8e5cd91b4001eceb7ccfb22b599167cc4...

50586857f1ed13cef1f23eb7aadd87e740263a8a authored almost 13 years ago
Increase number of messages shown on the messages index page.

It's safe to do this since we improved the performance of
Message#recipients in b4284659a864c384...

4d31a2de5830a1ab3c0bd40b0bfdaab83022aabc authored almost 13 years ago
Retrieve Message#recipients from MailIndex not MailStore.

- Now that Mail#delivered_to is stored in the MailIndex, it's much more
efficient to obtain the ...

1a8e5cd91b4001eceb7ccfb22b599167cc4dfba8 authored almost 13 years ago
Re-add foreman to the Gemfile.

This was inadvertently removed in
543720d111a8252c6d2c073106104a8f5b71e074.

50fba3f78acc71a26b3c4833eb03cbf82c7eb5ca authored almost 13 years ago
Extract the message id from emails that the Mail gem is unable to parse

Using the real message id (rather than generating a hash when it can't be found) moves the solut...

d43db3ef0839149d857e817a3b36a31ecc0786a6 authored almost 13 years ago
Store delivered_to in MailIndex.

- Working out whether a message has been delivered to a particular
person is currently very in...

b4284659a864c3846bc5423d8ec6999823202cf2 authored almost 13 years ago
Merge branch 'master' of github.com:freerange/sauron

dc4cc39386033a5480c18362fd84facc9273fc25 authored almost 13 years ago
Group methods for importing and methods for querying.

8055b2b5d616bae68e1f0805ee58785de2b0809b authored almost 13 years ago
Merge pull request #31 from freerange/combine-mail-wrapper-and-mail

Combine MailWrapper into Mail.

6f305ceeb728cd021d3fd193f348a5c25c4338b9 authored almost 13 years ago
Update deployment to use recap 1.0.0

543720d111a8252c6d2c073106104a8f5b71e074 authored almost 13 years ago
Remove stubbing/mocking style tests.

These tests are now redundant.

d2e5ca8cc71958c2acb432e77fb02c5547198724 authored almost 13 years ago
Add missing tests for existing behaviour.

833bc8cb4819bb1b9ea133e91966c60f1446561f authored almost 13 years ago
Move class into its own file.

This matches the unit test for the class which is already in a
separate file.

7893fa9f89000effb5014d0e57c753f09fe62859 authored almost 13 years ago
Combine tests for MailWrapper with tests for Mail.

- MailWrapper is only used by Mail and I'm not convinced there is enough
distinct behaviour in e...

21590b58b9ba7c8ea4c6a7bc66e781af3c4f023e authored almost 13 years ago
Combine MailWrapper into Mail.

I don't think the behaviour in MailWrapper is significant enough or
distinct enough to merit a s...

50296235f059a4be0ea59ab3422b315b0ffb0dec authored almost 13 years ago
Highlight unreceived messages with a flag instead of bold text.

We think this is slightly better than making the whole message bold.
Bold messages imply some id...

2a00da4a44366a4c74c3d218e50a268df5bb2262 authored almost 13 years ago
Drastically reduce the number of recent messages displayed.

Because we now call Message#received_by? for every message on the
messages index page, we end up...

aed0e71d67bec084b1e72200efd58d3a444d8628 authored almost 13 years ago
Add test for Team#has_member? and DRY up Team class.

a631428e0bf0b1ec76dbf7f333a98f022e581341 authored almost 13 years ago
Distinguish between users using HTTP Basic auth username.

- I want to show some user-specific information i.e. whether a message
was received by the cur...

3dc9cbadadd2ddc7b37a9d644d639e4e3d3fcc26 authored almost 13 years ago
Fix incorrect stash merge which lost some changes from master.

The changes to MessageTest in 49628d7bcdc3f1bbc78ebe7039eb4af4d65107b2
had been lost.

bc2e71197010721ae1ba61cb063039c231858f7a authored almost 13 years ago
The layout is a better place for the "session" information.

5a601ed6ee321aed38fa399d944ddae5606c99a4 authored almost 13 years ago
Highlight messages not received by the current user.

Some of this is a bit clunky, but it should do for now.

9f5d8f393d4bee06682fe2656becfac4f350e546 authored almost 13 years ago
Messages should always contain *all* their constituent Mail objects.

- We were doing this for MessageRepository.find, but not for
MessageRepository.messages. In th...

fab56865547db02bbad4e817b9c60b9ac3551d59 authored almost 13 years ago
Updated test name to reflect the test code.

29d6ffd144404724e9d0f2aff817f8a0fdfffc51 authored almost 13 years ago
Fix a problem with importing malformed emails.

We saw the following problem when importing emails for @floehopper's
account:

undefined metho...

cfe291fd7ee68d89946fcff9e4856ed723bd8d4b authored almost 13 years ago
Extract duplication into a #login method.

48e0da3fb8e493f88006eae04cc5961180c354b6 authored almost 13 years ago
Add a tiny amount of styling to make it easier on the eye.

Bootstrap is a quick way to start. We're not using the asset pipeline
because it doesn't work we...

79793a1653592059aaab3c661567782bdc4be088 authored almost 13 years ago
Whoops.

21b0883e5dbe48c8c25767ff7debec4cff2c5969 authored almost 13 years ago
List who a message was received by, not which address it was sent to.

49628d7bcdc3f1bbc78ebe7039eb4af4d65107b2 authored almost 13 years ago
Show all the recipients of a Message

A Message is now instantiated with all Mail records that match its message ID, so it can get any...

3766f5b5327b8349fe2b88830f469bd0db72cf29 authored almost 13 years ago
Generate hashes when some data is not available.

Some messages don't have a subject or a date. This is probably because the messages themselves w...

971ccf6876babc1bbd51262e0df4b759b91863c0 authored almost 13 years ago
We missed a 'Message' that should be 'Mail'

This should've been done in 883769890ba36b759c4b765ca2e9736bf55a1650

fff895434d25151cd80ee861b3c97ba396649eb1 authored almost 13 years ago
The index class belongs in the MessageRepository

We didn't end up extracting anything into a "MailRepository" as mooted in the 'Clarify `Mail` vs...

f9aeedaa947fc127c0ad5e4ce1e788d8e6009756 authored almost 13 years ago
Use an identifier to load a Message which isn't the UID of a single Mail

We considered a few approaches, including extracting a Message record
for storage in the databas...

9efaabd4977cd558d86d761fd67ff0836bbf7b92 authored almost 13 years ago
The interface for creating a `Message` can be simpler.

There's not much advantage in passing the various attributes of the
index record into `LazyOrigi...

caa3893d21f1845ddc29e32bb9a323bf90b2c292 authored almost 13 years ago
This name is more accurate.

c45c4f26705b845fa8f221bb623a35571e98e33d authored almost 13 years ago
Clarify `Mail` vs `Message`.

I want to start dealing with the multiple copies of an email that we
might end up importing in a...

883769890ba36b759c4b765ca2e9736bf55a1650 authored almost 13 years ago
Clarify that a mail is being added to the `MessageRepository`.

We're trying to make it clearer that mails are going in to this object,
but messages are coming ...

967974a4b10ed4cbe9a431528e211e80e44e95de authored almost 13 years ago
Hide ActiveRecord from the MessageRepository.

We don't need to be able to call `where` from the MessageRepository, and
defining our own method...

9b9bb55f8fe4f92f93bc20dd0a7c5c642e373c5c authored almost 13 years ago
Remove this rake task as it is unused.

We had a conversation about whether or not two entry points was making
the system more complex. ...

ac6ec02cbd09b93ac89409da806a7e7e483e3870 authored almost 13 years ago
Letting mail gem handle body decoding provides a fallback when the charset is unknown

3556696cbd617c6e2c77af53ab37328d8c64616a authored almost 13 years ago
Merge pull request https://github.com/freerange/sauron/pull/29

* freerange-body-encoding:
Always convert mail body into UTF-8 before doing anything with it.
...

2ae3641dd7181ff9d835e4e85b8623cef6f1f4f7 authored almost 13 years ago
Always convert mail body into UTF-8 before doing anything with it.

- A raw email message (or its constituent parts) can be encoded in
many different character se...

002a22d1e459c794599c3c37a8e1dbc5aec9b903 authored almost 13 years ago
It's more explicit to call Mail#encoded vs Mail#to_s.

I think it makes it clearer that we are generating the raw message.

638fd4fa7454fbec2bcb49b2e5e539254840636b authored almost 13 years ago
Inline record stub & extract message into local variable.

I think this makes it clearer what's being tested.

a519f6117268253026259333dd0281c7980c9853 authored almost 13 years ago
We don't need to see quite as many messages by default.

This is still not really defined behaviour.

08e5e92f75184338bc24301ffad46329c58ef515 authored almost 13 years ago
Relax grouping now every message has its ID.

The import now ensures that every message is indexed with its message ID, and that is sufficient...

c0dbaf306bbe27bf83261c19697482b10bad3d2a authored almost 13 years ago
The raw message is only really useful for debugging

Adding it as a comment allows us developers to read it when needed, whilst keeping it out of the...

feb1eddc922f1f3fc634e17fc244c80e83a3d554 authored almost 13 years ago
Avoid Ruby warning when running unit tests.

/Users/jamesmead/Code/freerange/sauron/test/unit/message_repository_test.rb:11:
warning: top...

db86844250f067cc0af8fdef9c17700456ab5fd6 authored almost 13 years ago
Free up the table name 'messages' for something more appropriate.

I think we're going to want to call a 'message' the thing that's uniquely identified by the mess...

4f2c584c6b3921780a0bd18bc5707666e4c75adb authored almost 13 years ago
Add our own favicon.

THE FLAMING EYE!

2cb041cbc434c5695f4788141b3cbb0d12a1a6e1 authored almost 13 years ago
Increase database timeout to reduce chances of SQLite3::BusyException.

- We saw one of these exceptions during a recent import.
- We believe it occurred when another p...

ebbbfbc856e517182552a769977ba10902cbcc01 authored almost 13 years ago
CacheBackedMessageStore should write and read the raw message content using uid and account as keys

db74dad496e1ae4e752ade47665567bdc3db5a84 authored almost 13 years ago
Remove the script to back-populate message IDs.

ea8494584adb56fcf1e1e1272203c4a263653cc4 authored almost 13 years ago
Merge pull request #28 from freerange/repository-collaborates-with-an-index

Repository collaborates with an index

84c6fb598bcc39b3377f8cb5f4b47a5853892bc3 authored almost 13 years ago
Now that we have everyone's account up to date, import regularly.

5ffe6f295f940f5452a5592752d896d7045e3f3e authored almost 13 years ago
Use accessor methods to access the repository store and index.

Having an accessor (and test) just for the index, and not the store seems strange. Introducing ...

ca8fc10390940f20eff649671c57cf20740d24ae authored almost 13 years ago
Record was never a good name for models in our database index.

It's more like an index, so can be renamed ActiveRecordMessageIndex. The interface to the index...

bd6b9c711db24556ccc5727b7cb2f6c7f6780597 authored almost 13 years ago
Merge pull request #27 from freerange/introduce-a-mailbox-message

Returning a Message class from a Mailbox removes the need to repeat arguments

ae2b67d179eb88c0857cd9d969849c09ce8b8cee authored almost 13 years ago
Expects shouldn't be used when stubbing a method

7e79abac324a4b5ed4e3b50159befd360e844f1e authored almost 13 years ago
Returning a Message class from a Mailbox removes the need to repeat arguments

When importing a message, multiple methods take the same three arguments: the account, the uid a...

626c99b304ba48b42c91f4d409f685ec75421328 authored almost 13 years ago
Log original exception which caused failure to import message.

- Otherwise this information was being lost.

a76545301aeb278c2a95ec08d08d177ddd03ebb1 authored almost 13 years ago
Populate existing records with the corresponding message id.

We plan to run this manually on the server, and expect it to take a long
time.

528673fa18d99a87edd2cfc653e4f59dcc950d35 authored almost 13 years ago
Exclude duplicate messages from the web interface.

We're currently showing each message up to four times (once for each of
our accounts) in the mes...

097f5e192b1dc2c941913c44036a9f0f8912a64c authored almost 13 years ago
Email everyone if the scheduled rake task fails.

- I've checked that this adds the MAILTO env variable to the crontab.
- I've checked that the ra...

178d77f44ad2bf9ee0a5ad34aa5795eb01c58073 authored almost 13 years ago
Split these classes out into their own files.

It's a bit confusing with so many classes in the same file.

cee593b8f8e5f131dc1a304da70d5f80fe80dd6c authored almost 13 years ago
Generalise the encoding fix for subjects without encoding information.

We encountered a Lithuanian spam email whose subject was actually in
Windows-1257, containing by...

f9f6d2935a3cbd86fb0a06866d619fd37159b80d authored almost 13 years ago
Handle another mis-encoded character.

We still can't quite decide about whether or not to proceed with a brute-rencoding of subjects o...

5ce61255351c55729d4acd37807d51f3fc25f000 authored almost 13 years ago
Some message bodies apparently can never be downloaded.

When trying to import messages from [email protected], it failed on UID 963. Via the co...

30684e09dbf1a42e7a20d833107b3ddfa66510cb authored almost 13 years ago
Disable automatic import for now.

I don't want this to run until I know how long the import takes, and until we've got everyone's ...

7f6a44bd2f42e21e558d9b14fa2b167103672336 authored almost 13 years ago
Merge pull request #26 from freerange/import-perf

Improve import performance.

fc78330f46ab858b688dfa7eef82c550e115e4bb authored almost 13 years ago
Combine Mailbox#uids and #uids_from into a single method.

I think it's a bit simpler this way.

3f0f3ceed982993699d9687e0a63e1da80b647a4 authored almost 13 years ago
No need to import messages which have already been imported.

- Find the highest stored UID.
- Only ask IMAP server for UIDs at least as big as this highest UID.

b6d751a7e9cc13a2664d681d997e9b9ccda59207 authored almost 13 years ago
Change UID column type from string to integer.

- The IMAP RFC says UIDs are 32-bit integers.
- I want to be able to find the highest UID alread...

27efbee93dd897736951446b5ff4e620082508b8 authored almost 13 years ago
Add some simple logging.

I'm not seeing messages from the second team account imported. This might help find out why.

c4d26c5fb5fb73dbc65bf6e013692be4f3c7ddfe authored almost 13 years ago
Removed call to `save_and_open_page` accidentally left in feature.

6fc67c5fe12086744fcdd2264789751508671407 authored almost 13 years ago
Merge pull request #24 from freerange/multiple-accounts

Multiple accounts

17a8c5dfd01523d0273e1995748610cc4741d2f0 authored almost 13 years ago