• 
      

    Start carving up RB Gateway into namespaces

    Review Request #9767 — Created March 12, 2018 and submitted

    Information

    rb-gateway
    master
    153760f...

    Reviewers

    RB Gateway currently only has a single namespace that is getting very
    polluted. Because of this, methods that should be private aren't, since
    they are accessible within the declared namespace (package main).

    This is the first of a series of patches to split this monolithic
    package into sub-packages. This patch tackles the repositories
    (née repository.go and git_repository.go) package, as well as adds a
    helpers package which contains all the test setup code that is used
    across package boundaries.

    Ideally, this would only have involved the testing infrastructure
    changes, but because of how go imports work, we cannot import
    github.com/reviewboard/rb-gateway from .../rb-gateway/helpers to
    access Repository et al. because rb-gateway is a binary and not a
    library.

    Ran unit tests.

    Description From Last Updated

    Replace with map literals.

    brenniebrennie

    This is very strange. Shouldn't we just be importing "helpers"? Even better, we should probably put all of these sub-packages …

    daviddavid

    Looks like it would be nice to expose the createTestConfig method that you currently have in util_test.go.

    daviddavid

    I think it would be a lot cleaner to have the test functions call CreateTestRepo themselves and then pass in …

    daviddavid
    brennie
    1. 
        
    2. helpers/repo_helpers.go (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      Replace with map literals.

    3. 
        
    brennie
    david
    1. 
        
    2. routes_test.go (Diff revision 2)
       
       
      Show all issues

      This is very strange. Shouldn't we just be importing "helpers"?

      Even better, we should probably put all of these sub-packages into an internal directory.

      1. No, relative imports (it would have to be "./helpers") are not considered good practice. Also, I don't see a benefit to having this as "internal", becuase if people want they can import our packages.

      2. I don't think I want people importing our packages right now. We've made no guarantees or commitments about API stability.

    3. routes_test.go (Diff revision 2)
       
       
      Show all issues

      Looks like it would be nice to expose the createTestConfig method that you currently have in util_test.go.

      1. I go through and fix up these tests in a future patch. This was more about replacing checkFatal with assert.Nil etc, I just happened to clean this up a bit.

    4. util_test.go (Diff revision 2)
       
       
      Show all issues

      I think it would be a lot cleaner to have the test functions call CreateTestRepo themselves and then pass in repo.Path as a string to this method.

      1. I've fixed this in a subsequent patch.

    5. 
        
    brennie
    david
    1. Ship It!
    2. 
        
    brennie
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (599a8b5)