Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split out validation rule implementation into library module #294

Closed
barbeau opened this issue Oct 13, 2017 · 0 comments

Comments

@barbeau
Copy link
Member

commented Oct 13, 2017

Summary:

I want the basic rule validation implementation in this project to be usable as a library in other applications. For example, we're using the BatchProcessor in https://github.com/CUTR-at-USF/transit-feed-quality-calculator.

However, the current JAR size of this project is sizable at around 71MB. For a smaller project like the above this type of dependency is really overkill. The main size increase is due to the Jetty and web application components along with the Conveyal gtfs-validator project for optional static GTFS validation.

So, I'd like to split out the validation rule implementation into a smaller submodule of this project that could be compiled into a separate and substantially smaller JAR file. This will also help us maintain a modular structure of the basic rule implementation separate from the web server UI.

I'm keeping the library inside of this repository as a submodule, vs. splitting it out into another repo, for a few reasons:

  1. Avoid confusion for where issues/discussions on rules should live - if we split to two different Github repositories, I think this will create a lot of confusion going forward for where rule issues should be opened and maintained/referenced.
  2. Git history - if we move the rule implementation to a separate repo, we'd need to figure out a way to deal with the loss or divergance of the Git history between the two repos. Also, there would be confusion over which Github issue numbers were referenced in the Git history.

Steps to reproduce:

Include this project as a library in another application - for example, to use the BatchProcessor in https://github.com/CUTR-at-USF/transit-feed-quality-calculator.

Expected behavior:

Give me a small JAR file library with the core GTFS-realtime validation components

Observed behavior:

I get a 71MB JAR file that has embedded Jetty, static GTFS validation and tools for building a web application that I don't need.

@barbeau barbeau added the enhancement label Oct 13, 2017

@barbeau barbeau added this to the v1.0 milestone Oct 13, 2017

@barbeau barbeau closed this in ee8fbc7 Nov 1, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.