Giter Club home page Giter Club logo

horizon's People

Contributors

connorpower avatar jschweizer avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

forkkit

horizon's Issues

Add dummy unit tests

Add dummy unit tests to ensure correct execution of tests and reportage of coverage metrics.

Add unit tests for the API layer

The API layer performs crucial transformation of local data structures into IPFS documents and is already wrapped in a protocol. Implementing unit tests should be fairly easy and serve as self-documenting code.

Integrate support for Xcode Bots

  • Build on new commits to master branch
  • Increment build number using total number of git commits in repo
  • Tag integration build using annotated tags

Autostart daemon if not running

If the horizon daemon is not running, very few of the command will work.

Detect this and autostart if necessary – printing a message that the user should stop the daemon.

CI builds from master should create git tags

Currently the CI system automatically increases the build number, builds and optionally distributes the app, but not tags are left in git. Every CI build should be tagged appropriately.

  • Investigate options for tagging builds with Bitrise
  • Define a tagging scheme for develop vs master builds
  • Investigate ability to upgrade regular git tags to GitHub Releases

Slack Integrations

  • App Center should post notifications to the horizon channel when new crash groups are created.
  • Bitrise should post notification when new archive or deploy builds complete.

Perform clean shutdown of IPFS daemon

horizon-cli daemon stop

Currently the IPFS daemon is killed with a SIGKILL signal. We should instead send a SIGINT to provide IPFS the opportunity to perform a clean shutdown.

Implement a log window

Console messages should be displayed and formatted in a log window visible to the user/developer.

Move logic for finding next available file to a FileManager extension

Currently the code is part of the horizon command line tool, but is well tested and much more generally applicable.

let targetLocation = (targetLocation as NSString).expandingTildeInPath
let location: URL
var isDir = ObjCBool(false)
if !FileManager.default.fileExists(atPath: targetLocation, isDirectory: &isDir) {
    location = URL(fileURLWithPath: targetLocation)
} else {
    var maybeLocation: URL?
    var counter = 1

    repeat {
        if isDir.boolValue {
            let filename = file.name + (counter == 1 ? "" : " (\(counter.description))")
            maybeLocation = URL(fileURLWithPath: targetLocation).appendingPathComponent(filename)
        } else {
            let newSuffix = counter == 1 ? "" : " (\(counter.description))"
            let baseBath = (targetLocation as NSString).deletingPathExtension
            let pathExtension = (targetLocation as NSString).pathExtension
            let newPath = baseBath + newSuffix + (pathExtension.isEmpty ? "" : ".") + pathExtension
            maybeLocation = URL(fileURLWithPath: newPath)
        }
        counter += 1
    } while FileManager.default.fileExists(atPath: maybeLocation!.path)

    location = maybeLocation!
}

Resolve code signing issues

Upon returning to the project, we seem to have code signing issues. They are likely trivial, but should be resolved.
bildschirmfoto 2017-12-28 um 15 52 30

bildschirmfoto 2017-12-28 um 15 52 46

Integrate Hockey App or Visual Studio App Center

We require an update mechanism and central location for crash reports.

TestFlight is not available for macOS apps. Hockey App was purchased by Microsoft and recently relaunched as Visual Studio App Center. It is likely a pragmatic place to start.

Implement a send & receive UI

Currently, we display only the list of received files from a user. The list of files which has been shared with a given user is invisible to the user performing the sharing.

bildschirmfoto 2017-12-28 um 15 42 43

Document existing code

The current proof-of-concept code is completely undocumented. This is somewhat unhelpful when returning to the project after a couple of months of inactivity.

Fix SwiftLint issues

SwiftLint has been integrated as a build step and revealed both inconsistencies and build errors. These should be quickly remedied.

Implement file pinning

File pinning should be optionally provided to allow offline access to certain content.

Implement the ability to unshare files

Currently, the list of shared files is concatenate-only. This has the unwanted side effect of never being able to unshare a file or clean up the list of shared files.

  • Sketch required architecture

sync fails if a contact is offline

The entire sync operation fails if a contact is offline. Allow sync to continue, but print after completion a summary of warnings, i.e.

> horizon-cli sync
contact-x: synced
contact-y: failed
....

Create a README

Project is missing a readme. Add basic instructions, particularly around the local IPFS node requirements.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.