Giter Club home page Giter Club logo

hoplon's Introduction

Hi there ๐Ÿ‘‹

  • Software engineering generalist, specializing in backend and Elixir
  • Check out rexbug, for all your Elixir interactive tracing needs!
  • Need to create a good looking resume easily? Give markdown-resume a shot!
  • Trying to write more on https://nietaki.com/

I'm available for contract work! You can check out my CV HERE.

hoplon's People

Contributors

crowdhailer avatar nietaki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

crowdhailer

hoplon's Issues

Check transitive dependencies

Example: if your project depends on ecto and ecto depends on :decimal, verify them both.

This info is in mix.lock, but we're currently discarding it

General code cleanup

The code as of 0.3.2 is a little rushed. The purpose of this task is to bring the code to a good place before moving forward with more features.

General checklist:

  • Add some integration tests, increase code coverage
  • Clean up interfaces/function names
  • Move as much of the business logic away from mix tasks and into hoplon's modules
  • Fill in the TODOs from README
  • Consider developing moduledocs and function specs a bit more

...and there's probably more, just needs a fresh look

Fix bisecting for v 0.1.0

bisect doesn't work because even the initial commit is 0.1.0, it will point to the second commit in the repo

After bisect, move around the git history to find the right commit

The purpose of this task is to add another heuristic to the "find commit for the version using git bisect" functionality.

The idea is that if the commit found by bisect doesn't align with the dependency, we could check some of its children and grandchildren, up to a defined depth. It should reduce the number of false positives a lot

Describe the audit/verification process from the user's perspective

Both to iron it out in my head and have something I can get some feedback on.

Things to pay attention to:

  • What is the developer/project setup process?
  • What is the audit creation/submission process?
  • What is the process of checking the project dependencies?
  • Are we introducing any concepts/terminology (audit? revocation? verification?)? What do they mean exactly?
  • Are we changing any existing terminology?
    • There might be some terminology around the diff-based tasks and functionality that we might want to move around: hoplon.check, hoplon.verify, absolutions, ...
  • How does the audit-based functionality fit in with the local lockfile absolutions? Are they rendered obsolete?

Check transitive dependencies, but not ones that are unused anymore

Currently the project goes through mix.lock to find the project's dependencies. While this works pretty well, there's a chance mix.lock is going to contain a package the project no longer depends on - the old entries don't get cleaned up.

The system should be slightly more sophisticated here.

Add the infrastructure for compiling Erlang ASN.1 encoders/decoders

Wishlist:

  • always compile .asn1 files to erlang files as a pre-compilation hook, if possible.
    • otherwise alias the compile and test mix tasks?
  • compile the generated erlang files as part of normal compilation
  • provide a convenient way of parsing the generated records
  • token encode/decode test for some simple record
    • make sure the encoded stuff is proper DER format

Better place to store the package repos

/tmp is bad, mainly because it can be cleaned up in an arbitrary fashion by the operating system. That means some files might be deleted while others are left behind, leading to broken repositories.

The repositories should probably be under ~/.hoplon/repos/ and named after their github locations (nietaki/hoplon), not package names

mix hoplon.absolve and the hoplon.lock file

Add the ability to absolve a version (hex checksum) of a library. Optional message

%{
  absolved: %{
    hackney: %{
      "1.3.4 (or the hash)" => "readme and format changes - Jacek"
    }
  }
}

No need to diff files

Git internally is just a Merkle-tree so there is no need for diff as you can just compute Git-compatible tree and compare it with the one stored in repo. In theory it can end with differences (as SHA-1 is broken), but it would allow to speedup first check and reject obvious invalid repos.

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.