Comments (8)
I haven't noticed problems as a user. For a developer, I think we have the token solution. Let's not complicate things if we don't have to: caching is hard.
from neil.
Wasn't this problem already addressed by using a GITHUB_TOKEN?
from neil.
Yes - the github token takes care of it, if we're ok with every dev creating/using one to run the tests, and similarly if end users run into this, they can also create and set a token themselves (if we document it).
To me, this is a route to not requiring that of neil devs and users.
The actionable thing (if we don't want to go for a local cache) is probably improving the error handling when github 403s b/c of the rate limit.
from neil.
This could also speed up the tests somewhat - I'm not sure exactly why they're slow, but if it's b/c of the network requests, this would be a route to getting those to something more reasonable.
But, feel free to close if there's no interest - it's not a pressing need or requirement for neil by any means, was just similar to a problem i'd seen recently, so i thought i'd share.
from neil.
sure, seems fine - i appreciate the commitment to keeping the complexity down! hopefully we never have to deal with this
from neil.
I also think it's useful if we discuss end user needs separately from developer needs.
Another way to frame the developer side is that tests are currently:
- Not possible to run if my network is down
- Are not idemponent / immutable. API outages or remote API changes or API usage limits can cause flaky tests.
I see caching as one potential solution. Other solutions to "better tests" are probably worth considering too.
Personally - being able to provide a local Github token solves 99 % of my current needs. The remaining 1 % is mostly aesthetics 😄
from neil.
It occurred to me that an in-memory cache (dropping the external file bit) would solve the repeated-requests-in-tests problem, because the memory is shared across tests.
I did a quick proof of concept here: russmatney@fb5d718
This allows the tests to grow without adding more request burden - if they all work with (for example) :lib clj-kondo/clj-kondo
, the whole suite would only make a handful of requests per run (vs new requests per test).
No worries pressure to pick this up - just an idea/starting point to consider if we ever want something like this. No worries on dropping it for now, just had to get the idea out.
from neil.
I'll close this, as it's not a real problem for anyone at the moment. I opened a small docs PR mentioning the env vars in the Contributing section - that might help head off the confusion for new contributors: #129
from neil.
Related Issues (20)
- `neil new` crashes on certain forms of invalid input HOT 2
- Add `neil add tasks` too. HOT 1
- `neil new` puts `:neil :project :name ,,,` indented behind `:aliases :build :nsdefault` HOT 6
- Make `:version` consistent over `search` and `dep add` commands HOT 1
- neil does not find a newer version of a library that antq does HOT 2
- `neil new`: Support Git repos without tags
- add support to add files which describe "development" environments HOT 2
- Error on dep update HOT 1
- Unable to install `com.cnuernber/ham-fisted` with Neil 0.1.59 HOT 2
- `neil dep upgrade` should update unstable versions HOT 2
- Error when running `neil --version` on versions `>=0.1.58` HOT 1
- Suggestion: `neil dep local <lib> <path>` HOT 2
- neil dep upgrade drops dep :exclusions HOT 2
- Neil completely crashes on fresh install HOT 24
- `neil dep add` exits with code 0 on both failure and success HOT 1
- Neil new behaviour different for windows HOT 4
- NPE on `neil dep upgrade ` HOT 5
- suggestion: support `neil add nrepl -with-cider` HOT 3
- Documentation: add git as a requirement HOT 1
- Feature request: a flag that does what `dep search` already does, but works for multiple artifacts and outputs a string suitable for `-Sdeps` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from neil.