Giter VIP home page Giter VIP logo

seligimus's Introduction

Austin Scola

Hello friend, my name is Austin Scola.

About Me

  • I'm a Bostonian.
  • I enjoy programming in Python and Rust.
  • I like playing NES Tetris.

State-Machine Policy

If life is a state-machine, then currently, my policy for selecting actions applies a bias towards the following:

  • larger higher derivates of change
  • strategic risk embracement
  • a simulated annealing style approach to the exploration vs. exploitation tradeoff

seligimus's People

Contributors

austinscola avatar

Stargazers

 avatar

Watchers

 avatar

seligimus's Issues

Add setup.py

Add a basic setup.py builds script for setuptools. Also add a build script for testing the building locally.

Unify the stage and publish scripts?

Should we unify the staging and publishing scripts? On the one hand it would reduce code duplication, but on the other hand it would be more risky?

Built wheel should be tested

The pytests should be run against the wheel to make sure that when the wheel is installed it works correctly.

Do not run tests against the wheel built from the source distribution

Do not run tests against the wheel built from the source distribution, instead just check that the contents of the wheel built using the source distribution match the contents of the wheel built from source. Wheel files are actually just .zip files so this can be done by unzipping both wheels and doing a comparison on the two file structures.

Venvs should all be in one directory

There should be one venv directory where different virtual environments are created. Right now, distribution building occurs in venv. It should be moved to venvs/building or something similar.

Pull in code from Arborista and Illud

Do an initial pulling in of code from Arborista and Illud that is not specific to the function of those repositories and might be useful to other applications.

From Arborista:

  • Same type equality operator decorator
  • Tree and node?

From Illud:

  • Math
  • Generic inheritance test

Protect master branch

Disallow merging directly to the master branch once the GitHub Action for PRs is set up.

Make the GitHub Action check required

Make the status check of the GitHub Action required before merging is allowed.

This might have to wait until the action passes? Or I could use admin privileges to merge anyways to bootstrap the action into passing.

Add venv directory to git

It would be nice to have an empty venv directory (with a .gitkeep file) in git so that the workflow is more clear without having to examine the files.

Maybe a readme with the purpose of each venv would also be nice but the issue with that would be that it could become out of sync.

Run setup.py in venv

Change the build script to run setup.py in a venv so that the version of setuptools is fixed.

Distribution Action should use downstream jobs

The distribution Action should probably use downstream jobs for testing the wheel and testing the source distribution. The building job would upload artifacts and the downstream jobs would download them.

I'm not sure the duration implications, but organizationally, this would be cleaner.

Wheel testing should not have to rebuild venv completely

We should be more intelligent about rebuliding the venv for wheel testing. Right now the venv is completely removed then rebuilt. This is overkill and we could save time by being smarter about it. The solution should also probably be factored out so that it can be used by other building and testing scripts.

Right now, I think we should lean towards just getting everything working and then we can work on nice-to-haves like this.

popd trap not needed?

I don't think we need to use the popd trap in scripts because the scripts are not sourced, they are run in their own subprocess.

Version string needed by scripts

The version string would be helpful for the source distribution testing script because the name of the tarball name includes the version string.

Move the version string into a file and then have setup.py read the version string from the file.

Add setup.py

Add a setup.py file as the build script for setuptools.

Also make sure to adjust the mypy configuration to include files in the root directory when this is added. Id est, add *.py to the files list in mypy.ini.

There should be two environements

I misunderstood the meaning of a GitHub "Environment" at first. I thought it was just a way of controlling access to secrets. It turns out it is actually meant to correlate to external deployment environments. So, Seligimus should have one for Test PyPI and one for PyPI.

Here is what needs to be done:

  • Make two new environments in GitHub "PyPI" and "Test PyPI"
  • Delete the old tokens and make new ones for the two envs
  • Change the staging and publishing scripts to use the new envs

Python distributions missing packages

The Python distrubtions are missing packages. Taking a look inside the source distribution, only the root seligimus package is present, not all of the subpackages:

austin@austin-p7-1254:~/seligimus/dist/seligimus-0.1.0$ tree
.
├── PKG-INFO
├── README.md
├── seligimus
│   └── __init__.py
├── seligimus.egg-info
│   ├── dependency_links.txt
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   └── top_level.txt
├── setup.cfg
└── setup.py

2 directories, 9 files

We could use setuptools.findpackages to fix this and be careful to exclude tests.

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.