Giter VIP home page Giter VIP logo

toolshed's People

Contributors

asherf avatar dependabot[bot] avatar doujiang24 avatar htuch avatar kfaseela avatar kyessenov avatar mmorel-35 avatar phlax avatar q0w avatar renovate[bot] avatar vehre-x41 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

toolshed's Issues

Consolidate core aio packages

When this repo was created from the tools in envoy, packages were created according to their existing namespace.

This has led to a proliferation of packages, some of which - esp the core aio packages, can be packaged together, which will make this repo, and dep management easier.

Add async logging for root logger in runner

When adding async logging it was not possible to add for the root logger as the flake8 module that is called in envoy.code.check uses multiprocessing.pool and the threadsafe queue that is used by default, does not work for that situation

Its likely that using a multiprocessing.queue would fix the problem, at the expensive of some perf, so it may be desirable to use a queue according to whether debug logging is set

Remove non-async runners/checkers

When the runners/checkers were first written for envoy, they were non-async, and async functionality was added subsequently.

Most of the existing non-async runners/checkers could benefit from async preloading etc

It will cut code and make things more manageable if we just make all runners/checkers async and remove the non-async code

Add some/more developer docs

I have started adding some notes about development on this repo as wiki pages.

Lets add more, and crystalize it into README pages etc in the repo.

SHA checker only checks github dependencies

I think because of the way the data model is structured for dependencies/releases we only added sha checking for github deps, yet the other deps should work fine for this check also.

Clean up `list()` casting of mock `call_args` in tests

Partly as i hadnt realised that call_args have equality with their list representation and partly as i sometimes dumped the call_args in pdb in this way - i got into the habit of wrapping all call_args in list

we should clean that up

Improve release publishing workflow

Currently we manually create releases and any package that is not marked -dev in its VERSION file gets published

This creates a lot of unwanted commits, and boilerplate tasks that are pretty annoying and potentially unnecessary.

One possible solution is to make it such that:

  • When a PR lands on main if the -dev version has changed for one or more packages...
  • CI creates a branch for a new release, updates the VERSION files and publishes the packages to the version indicated by the previous dev version/s

Add/fix `Bad credential` error handling

If you try to run the dependency checker with bad credentials - ie a key that doesnt have permission to access some/all of the API resources required it can throw an error, which currently appears to be unhandled.

Used "dated" releases

as the repo is a monorepo and there are quite a few packages with differing versions, it doesnt make sense to have semantically versioned releaeses - i think instead we should start doing date.{i} for each release on a given date

Merge existing extensions checks to `envoy.code.check`

Once envoy.code.check lands there will only be the extension metadata tool left in Envoy that requires the envoy_py_binary macro and related pytest/coverage/code

We can shift the metadata checker pretty trivially, so probably we want to do that quite quickly just for the benefit of removing so much code.

There is currently also another tool that is billed as "dependency validation" but mostly it deals with extension dependencies, im thinking we can add that to the extension.check also

Add CVE issues to `envoy.dependency.check`

Currently, in Envoy CI, when a failing CVE is found for a dep the job errors until the issue is resolved by the dep being updated, or the CVE being excluded.

Often this is not noticed immediately.

If we instead of erroring, just warned that there is a failing CVE in CI, and then - as we do with "Newer release" tickets - created a ticket that a "Dependency CVE issue" had been found, we would more likely notice, have something to close through resolution, and the checker wouldnt error, unless something unexpected happened

We can fairly easily repurpose the release-issues check to achieve this, altho it will take a little refactoring to handle multiple issue trackers/issue types

Add a `@fix` framework for checkers

Some checkers provide fix functionality already.

It would be quite helpful if we had a way of easily marking fix utils as being associated with warnings/failures in specific checks.

Recently we added a @preload decorator that serves a similar purpose, so we can probably copy/repurpose that to do the same.

Add a dependency checker for build tools

Currently envoy often gets out of sync with the toolchains and images from build tools

Its also not always clear to people updating build-tools what needs to be updated, but its not so difficult to figure out programmatically

Most simply this could just issue a warning in envoys ci - more helpfully, but with significant added complexity, it could raise an issue or even a PR to fix

Add ability to filter dependencies in dep.checker

It would be great when updating dates/shas/etc if you were able to check just one or so deps at a time

code.checker has something to filter filepaths, we possibly want to do something similar with deps

Add multi-stage builder (eg `aio.run.builder`)

We currently have 2 types of runner - a basic runner (as currently defined in aio.run.runner) and a checker (as in aio.run.checker)

The checker is multi-stage in the sense that it has multiple checks, and some will/not run according to cli args

It would be helpful to add a another runner type - builder which like checker is multi-stage, and responds to cli args to determine which stages to run

Im thinking this would be useful in particular for integrating the current tools for building docs

Add `@advice` framework for checkers

similar to having a framework for checkers (and preloaders) it would be helpful to have something to trigger advice on certain failing checks

Checker/runner cli flags need a makeover

some flags dont work correctly and there is a lot of extraneous noise

known not to work as expected - multiple -c flags

there are some that could just work better - eg adding ! negation to some matchers

some of the matchers use regexes - but probs should use globs for cli and convert with fnmatch

Add an `envoy.format.check` tool

Currently Envoy has quite a few format checks of one sort or another.

Most could do with some optimization, and all could easily work as checks in a integrated checker.

Initially i would suggest integrating all the current jobs in format_pre. After that we can look at the other bazel/proto format jobs.

Improve `async_property` tests

Currently async_property only has an integration test, which is handy but its missing coverage, and it needs some unit tests

Add SHA checker to `envoy.dependency.check`

It would be very helpful if we had a check that compares the shas of the tarballs to the ones in repository_locations.bzl

broadly i think the required steps are:

  • add a check in abstract/checker.py
  • add a preloader in abstract/checker.py which downloads the tarballs
  • add some functionality in abstract/dependency.py to download the tarballs and compare the shas

Restructure dependency/release data model in dependency checker

Currently we have a Dependency class that may/not be github and has various raises etc accordingly.

If it is a github dep we can create a "release" object for it which unlocks further functionality.

I think we need to create a GithubDependency and separate it from Dependency, likewise with Release, so we can make some of the functionality available to other deps (cf #320 )

Add per-package pytest.ini config

The recent release of pytest-asyncio requires a config setting

As not all packages require this for their tests, they break on not recognizing the config

Ideally we need per-package configs to allow use of different pytest-plugins

Ensure dependency issues are not closed incorrectly

Currently the dep checker doesnt discriminate between prs and issues so can close a pr if it looks like a duplicate of an issue

We probs want to filter out the PRs so that doesnt happen

We also may want to filter out any issues/prs that were not created by the bot

Use regex for `envoy.dependency.pip_check` directory ignores

We recently added an ignored_dirs to ignore the requirements file in /tools/dev

It seems like bazel checks out -e pip packages in the src directory of the build, which breaks the pip check

eg, using the envoy.dependency.check from PR is failing the pip check as a requirements file is found in /tools/dev/src/pytooling

one possible solution to this is to use regex matching for the directories, and match anything below /tools/dev

Limit `success` output logging

The glint code check in particular checks 1000s of files, so logging success on every one is a bit of a log hog

ideally we limit this to a given number and then overwrite the last success line or similar

this is kinda made more complex as i dont think we want to do this for any other logging and we need to properly accommodate both types of output

Add dependabot (at least for github actions)

mostil, I think we dont want to pin pip hashes - because this repo is testing the latest builds, but i think at least we want dependabot to check our github actions, and maybe for some repo pip deps

Prune redundant code in `aio.core`

There are quite a few patterns in aio.core that are basically experimental, and either dont quite work as expected, or there are better ways to do it.

For the most part the code using these routines has been shifted, so there is quite a bit that is now unused - a few items may be worth retaining

`pants check::` doesnt use reliable versions

when you run pants check some.package:: it uses the dependencies that are specified in the package BUILD files

when you run pants check:: it ignores these and just uses the local versions if they are also being tested

i have raised this upstream, not least because you would expect the results to be the same running against each package, and running against all packages

i also tried to resolve this by running against each package separately, but the performance is terrible - i believe this is something being looked at upstream

Add `./pants` script for running pants

The recommended way to run pants is with a script in the repo.

Until now, just installing pantsbuild.pants has just worked, but currently there is a version conflict with docker-compose which is breaking my local venv

Using the recommended pants script avoids this problem as it uses its own venv - we should add...

Readd CVE scanner integration tests

when #279 lands it probably wont include the integration tests that envoy.dependency.check currently has for the cve scanner as lib does not have a runner

these tests, altho useful are prone to breaking as they test the checker output which tends to unrelatedly change

now that the cve scanner is in its own package we can probably add better integration tests (based on the originals) but it will take some time

Add test matrix for python versions and test 3.10

We need to test python 3.10 so it would be good to have a matrix setup to facilitate this (if its not there already)

We also need to consider whether we only target 3.10+ moving forward - i think yes

The implications of this are that if we go full 3.10 we can use newer language and libs, whereas if we dont we wil only have to ensure compatibility

The other implication is re users and testing

If we go strict 3.10+ we dont need to maintain a test matrix for different versions going forward

However, it also means we mandate to devs that use the tooling that they must use the correct python version

This will be a lot simpler once rules_python has proper toolchain/runtime env support

Auto merge is broke 8(

not sure why - seems like a github issue - i certainly didnt change anything, and its still working on envoy

Broken pypi readme

The latest update of pants seems to have changed something in how the packages are built

there is some customisation to use a setup.cfg file which i guess is broken

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.