Permalink
Commits on Nov 15, 2015
  1. Thread mailer through system

    xeqi committed Nov 15, 2015
    Pass a function through as a mailer. Use this for sending password
    resets.
    
    The prod/dev systems can use the normal one. Tests are added for it
    which spawn an smtp server and connect to it.  Tests for other parts of
    the system can pass a mailer that just sends the data to a promise for
    verification.
Commits on Nov 13, 2015
Commits on Nov 8, 2015
  1. Allow admin index removal to use hypenated data

    xeqi committed Nov 8, 2015
    Deleting the group/artifacts through the admin namespace was not using
    the correct analyzer. Therefore any hypnenated names were unable to be
    found, and were not actually being deleted.
    
    Bind the correct analyzer so that clucy doesn't use its normal one.
  2. Thread object for search and use a protocol

    xeqi committed Nov 8, 2015
    Create LuceneSearch for production/development and integration testing.
    Allow use of an index-factory for an in memory index for tests. A
    no-search one is used for tests that don't need it.
    
    Since one of the integration tests adds data to the index, and then
    searches the started system is now saved and accessible. This might be
    better as a unit test later once the db is abstracted, and unit testing
    the handlers is possbile.
    
    Also add some unit tests for LuceneSearch. This will make it easier to build
    other ones for any of the search bugs/feature requests.
Commits on Nov 7, 2015
  1. Update travis to use jdk8

    xeqi committed Nov 7, 2015
  2. Thread object for stats lookup and use a protocol

    xeqi committed Nov 7, 2015
    This allows different implementations based on usage:
    
    1. FileStat for dev and production system. This one reads a
    file (memoized!) just like previously. It takes a filesystem factory,
    so that unit tests can be created for it that use an in memory filesystem.
    
    2. MapStat for in memory version. This is delegated to for computation
    by FileStat. It is also used in the tests to provide 0 downloads without
    having to touch a filesystem.
    
    3. A reified stub used for unit testing search.
Commits on Oct 28, 2015
  1. Move yeller into a component and protocolize api

    xeqi committed Oct 22, 2015
    Several places were using error reporting through yeller. This patch
    threads an ErrorReporter though the app. A protocol is used to allow
    injection of specific implementations for each system. The production
    system gets an implementation that prints to stdout and reports to
    yeller. The development system gets an implementation that only prints
    to stdout.  Testing gets an implementation that ignores errors, as the
    resulting test failure should provide context.
  2. Move exception handling for repo to middleware

    xeqi authored and tobias committed Oct 24, 2015
    This allows the repo routes to be free of needing to know anything
    about how errors are reported.
Commits on Oct 27, 2015
  1. Introduce repl based dev and duct based system

    xeqi committed Oct 14, 2015
    Move to using a user.clj based repl workflow. This allows
    starting, stopping, refreshing files, and testing to occur from the
    repl. The README has been updated with a new development section
    showing how to get started.
    
    Having a reloaded repl based workflow requires component-izing the
    application. The jetty server and hikari connection pool had obvious
    start functions. They have been replaced with libraries containing
    componentized versions. Future work here includes Yeller and nrepl.
    The web components come from the duct library/template and are designed
    to work well with the jetty component.
    
    Having a component based system allows use of component for dependency
    injection. The tests already take advantage of the di by replacing
    hikaricp with a pre-existing connection to the in memory db. This allows
    the tests to manipulate the same db inside and outside of the
    system (ie, adding jars to repo before running the integration
    test). This will allow future work of replacing parts of the system for
    testing. Future work here includes a quiet error logger to replace
    Yeller in dev/test, and moving to nio2 to allow injecting a memory fs
    like jimfs.
  2. Update project.clj to best practicies

    xeqi committed Oct 21, 2015
    1. Don't aot main by default, but aot everything for the uberjar
    2. Use seperate target directories
    3. Use composite profiles to enable personal overrides of parts
    of a profile
Commits on Oct 25, 2015
  1. Add HikariCP for connection pooling

    xeqi committed Oct 21, 2015
    When running the main server the database functions end up
    creating a new connection for each call. This commit adds HikariCP
    as a connection pool and passes it through as the db.
  2. Thread the database through the web app

    xeqi committed Oct 17, 2015
    Now that korma is removed each db call creates a new connection.
    Step one of using a connection pool is to thread the db through
    the web app as a parameter.
    
    The tests see significant changes to account for the new apis.
    Additionally the fixures change to allow keeping one connection
    to the database per test, and an in memory database can now be used.
    All together this reduces test runtime by 10 seconds on my machine.
    
    The clojars admin namespace contains a dynamic var for its database
    connection.  The nrepl server uses some middleware to populate that
    var for connections.
    
    The one off tasks (migrations,setup) are changed to use the new apis.
    
    Unfortunatly `lein ring` no longer works as a database needs to be
    passed to the handler. I plan for a reloaded repl based workflow to
    replace the dev server functionality.
  3. Replace korma with yesql

    xeqi committed Oct 19, 2015
    DB access drops down to sql in serveral places. Korma does not appear to
    be providing a good abstraction. This commit removes korma and replaces
    it with yesql. This allows sql to be in sql without the string
    concatenation that raw clojure.jdbc would require.
    
    The database functions will read the config each time. This is
    unfortunate, but allows a dev and test config to be used in the
    same jvm/repl.  The next step will be to thread the db connection through
    the system to allow a connection pool to be used.
  4. The repo should add pom to search index

    xeqi committed Oct 21, 2015
    This was accidentally removed with the event code removal. Add it back
    along with a test to make sure it works. Requires updating kerodon
    to latest version to send a get on the search form.
Commits on Oct 19, 2015
  1. Replace the ring-servlet monkey patch with configuator

    xeqi committed Oct 13, 2015
    It is difficult to determine where to have this kind of monkey
    patching occur. It needs to happen for starting the production system,
    starting any repl based development system, and for the integration tests.
    Additionally, this kind of monkey patching is brittle if ring-jetty
    changes it's implementation details. This patch removes it.
    
    As an alternative the http server is configured with a decorator
    around the HttpServletResponse. It checks for a custom header
    and when it is found, it sets the status message. This could be slower
    since it has a check everytime a header is set. An alternative
    is to decorate the getOutputStream and getWriter with custom ones that
    check on .flush and set the status beforehand.
  2. Remove nailgun values from config

    xeqi committed Oct 19, 2015
    Nailgun was removed with the ssh/scp removal. This commit removes
    the configuration values that are now unused.
  3. Remove event logging code

    xeqi committed Oct 13, 2015
    Event logging was going to be a way to move away from sqlite.
    It never made it out of the prototype stage, is missing important
    data, and should be removed.
Commits on Oct 12, 2015
  1. Remove code related to scp, nailgun, ssh-keys

    xeqi committed Oct 12, 2015
    The ability to scp files was disabled along time ago. There have
    been few complaints. Everyone seems happy with https deploys at
    this point.
    
    This deletes all the code related to allowing scp, running the
    nailgun server, and displaying/verifying ssh keys.
    
    The database column remains untouched.
Commits on Oct 27, 2014
  1. Merge pull request #260 from firthh/master

    xeqi committed Oct 27, 2014
    More clean up in routes repo.clj
Commits on Oct 14, 2014
  1. Merge pull request #258 from firthh/master

    xeqi committed Oct 14, 2014
    Clean up route in repo.clj
Commits on Aug 29, 2014
  1. Bump version for development

    xeqi committed Aug 29, 2014
  2. Release 0.15.10

    xeqi committed Aug 29, 2014
  3. Use count instead of .length for for truncation check of recent jars

    xeqi committed Aug 29, 2014
    Perhaps the real fix should be making all data have a description of "", but I need to do some analysis on the database before making that determination.
    
    Fixes #238
Commits on Aug 16, 2014
  1. Bump version for development

    xeqi committed Aug 16, 2014
  2. Release 0.15.9

    xeqi committed Aug 16, 2014
Commits on May 17, 2014
  1. Use artifact-id and group id from parent pom if missing

    xeqi authored and ato committed Jul 23, 2013
    Fixes #132; requires re-indexing
    
    Conflicts:
    	src/clojars/maven.clj
Commits on Jan 18, 2014
  1. Credit finder of XSS bug

    xeqi committed Jan 18, 2014
Commits on Jan 9, 2014
  1. Release 0.14.11

    xeqi committed Jan 9, 2014
Commits on Oct 7, 2013
  1. Bump version for development

    xeqi committed Oct 7, 2013
  2. Release 0.14.3

    xeqi committed Oct 7, 2013
  3. Overwrite korma's connection pooling for tests

    xeqi committed Oct 7, 2013
    This allows them to use the correct db from the test-config