TODO in offroad-0.0.2 vs TODO in offroad-0.0.3

- old
+ new

@@ -1,42 +1,42 @@ -High priority: -- Creating/updating the installer (ideally, git pull on target platform, one rake task, then git push) -- Add a generate task to initialize config files in a Rails app -- Documentation -- Resolve issue of too-long index names - -Low priority: -- Make unit tests against bugs fixed by 7f8415 and 31455d - - Try to come up with some more convenient way of building unit-test-specific model classes -- Make sure ModelStates don't continue to stick around and cause trouble even after a class no longer acts_as_offroadable -- Get README into the auto-generated gem rdocs -- Get the test suite to stop generating a log file, it's annoying -- Use finer-grained exceptions to allow for better error testing -- Don't allow group_single records to reference non-single group records, since group_single "ownership" can change -- Don't assume "id" as primary key name, always look it up with the appropriate ActiveRecord method -- Allow offline app to relinquish ownership by setting a belongs_to field to 0 or NULL -- Figure out why Hobo assumes all fields non-editable (something I'm doing in the patched-in updatable check...) -- Assign a random number to group state when it is created, only accept mirror files with matching random number - - This is to prevent confusion if a group is made offline, then online, then offline again -- Also assign a random number to the online app, and only accept mirror files which match this number as well - - Prevents multiple installations of an app from reading each others' mirror files -- Use read transactions for mirror write operations (is it already doing this?) -- The launcher should keep a log file -- Include recent log lines (for both Rails and the launcher) in generated up-mirror files, for debugging purposes -- Use rails logger to note activity -- When mirror data version is confirmed, delete all sendable record state entries for deletions older than min(version) over all group_states -- Try to gather some kind of machine identifier to put in a offline-owned group_state column -- Try streaming out with large data sets and make sure it is sufficiently speedy, and is actually streaming (i.e. no Content-Length header) -- Change mime-type of mirror files being downloaded to something that doesn't allow it to be accidentally viewed in-browser -- Use md5sum on the entire cargo file instead of just each individual part, to protect against corruption outside the actual data segments -- Allow app to optionally specify batch sizes on a model-by-model basis -- Mirror file imports in the down mirror app should happen through GUI, and GUI should delete files once succesfully imported -- If offline app attempts to import a down mirror file and it doesn't work, it should: - - Delete the down mirror file as usual, but... - - Explain that it wasn't imported and that another down mirror file should be downloaded -- Figure out which activerecord methods skip the save callbacks, and wrap them to also update the mirror version - - Maybe methods for which this isn't practical should raise an error when called... -- Load all the other informational values in GroupState -- App creates a record then deletes it then sends mirror; does a deletion srs still get sent? - - For any fix to this: make sure that if app updates record then deletes it then sends mirror that deletion gets sent - - Maybe that means we need both create_version and update_version on srs? -- Put the CargoStreamer into its own gem, it might be handy for other stuff +High priority: +- Creating/updating the installer (ideally, git pull on target platform, one rake task, then git push) +- Add a generate task to initialize config files in a Rails app +- Documentation +- Resolve issue of too-long index names + +Low priority: +- Make unit tests against bugs fixed by 7f8415 and 31455d + - Try to come up with some more convenient way of building unit-test-specific model classes +- Make sure ModelStates don't continue to stick around and cause trouble even after a class no longer acts_as_offroadable +- Get README into the auto-generated gem rdocs +- Get the test suite to stop generating a log file, it's annoying +- Use finer-grained exceptions to allow for better error testing +- Don't allow group_single records to reference non-single group records, since group_single "ownership" can change +- Don't assume "id" as primary key name, always look it up with the appropriate ActiveRecord method +- Allow offline app to relinquish ownership by setting a belongs_to field to 0 or NULL +- Figure out why Hobo assumes all fields non-editable (something I'm doing in the patched-in updatable check...) +- Assign a random number to group state when it is created, only accept mirror files with matching random number + - This is to prevent confusion if a group is made offline, then online, then offline again +- Also assign a random number to the online app, and only accept mirror files which match this number as well + - Prevents multiple installations of an app from reading each others' mirror files +- Use read transactions for mirror write operations (is it already doing this?) +- The launcher should keep a log file +- Include recent log lines (for both Rails and the launcher) in generated up-mirror files, for debugging purposes +- Use rails logger to note activity +- When mirror data version is confirmed, delete all sendable record state entries for deletions older than min(version) over all group_states +- Try to gather some kind of machine identifier to put in a offline-owned group_state column +- Try streaming out with large data sets and make sure it is sufficiently speedy, and is actually streaming (i.e. no Content-Length header) +- Change mime-type of mirror files being downloaded to something that doesn't allow it to be accidentally viewed in-browser +- Use md5sum on the entire cargo file instead of just each individual part, to protect against corruption outside the actual data segments +- Allow app to optionally specify batch sizes on a model-by-model basis +- Mirror file imports in the down mirror app should happen through GUI, and GUI should delete files once succesfully imported +- If offline app attempts to import a down mirror file and it doesn't work, it should: + - Delete the down mirror file as usual, but... + - Explain that it wasn't imported and that another down mirror file should be downloaded +- Figure out which activerecord methods skip the save callbacks, and wrap them to also update the mirror version + - Maybe methods for which this isn't practical should raise an error when called... +- Load all the other informational values in GroupState +- App creates a record then deletes it then sends mirror; does a deletion srs still get sent? + - For any fix to this: make sure that if app updates record then deletes it then sends mirror that deletion gets sent + - Maybe that means we need both create_version and update_version on srs? +- Put the CargoStreamer into its own gem, it might be handy for other stuff