There should be some limit on non-code file size


(Aditya Patil) #1

There are some non code files in the project, which are increasing the overall size by a lot. The project is already 33+ MB when extracted( after a git clone), and even the git clone itself takes about 11MB.

Here are some large files,

11915720 ./.git/objects/pack/pack-1bd65b5f10ef8d9fe81d02a88cbf14445d87a533.pack
3482063 ./code/artificial_intelligence/src/TSP/euc_500
3482011 ./code/artificial_intelligence/src/TSP/noneuc_500
2195520 ./test/c++/build/test_main.cpp.o
922580 ./.git/objects/pack/pack-1bd65b5f10ef8d9fe81d02a88cbf14445d87a533.idx
872814 ./code/artificial_intelligence/src/TSP/noneuc_250
872751 ./code/artificial_intelligence/src/TSP/euc_250
416932 ./test/c++/catch.hpp
298335 ./.git/index
140784 ./code/artificial_intelligence/src/TSP/euc_100

Ignoring the .git/objects directory, the euc files seem to be too big. They are some kind of data files.

I think there should be a limit on the size of the files, as the euc_500 file alone adds ~3.3MB to project, i.e about 10%


(Aditya Patil) #2

./test/c++/build/test_main.cpp.o

This file should probably be deleted :arrow_up:

./test/c++/catch.hpp

What kind of beast is this :fearful:


(Aditya Chatterjee) #3

You have brought up a great point. We must consider the size of Cosmos and place some limits for better coverage and performance.

As such, this point is alarming:

The two files are the brainchild of Ernest. :laughing:

We kept the object file as it would reduce the compile time. We can separate such concerns and provide a compiled version or something suitable. These are a part of our test suite creation and comes from a project (link should be in a GitHub issue).

There are three parts: code, test files and documentation.

We must specify memory limits on these.

In your opinion, what should be the limit for the size of a documentation? Shall we separate the three concerns?


(Aditya Patil) #4

I’d suggest separating the documentation into a seperate branch. Then it could be used with something like read the docs, or even GitHub pages. There wouldn’t be any need to limit their size per se, just that it should be concise and readable.

Regarding code, I’d say roughly 100KB, or maybe even smaller should be enough. A larger file would suggest that the code badly needs refactoring into separate files.

Anything that is not code or data should not be in source repo. It should be possible to provide it separately. GitHub provides an option to add files when creating tags, maybe we could use them.