Neopo: A lightweight solution for local Particle development

Thank you for this tremendous work, Nathan. I was looking for something to help me automate builds with my gitlab CI/CD. I have not plumbed it out all the way yet, but I did some testing with the docker image and it looks like this will make it work.

4 Likes

I would be happy to help out with testing and documentation of the installation. However, I cannot figure out from what is published, how to install it for Windows. I already have Python and Git installed (I use them).

Here is where I get stuck:

$ python3 -m pip install .
$ neopo install

“python3 -m pip install .” should reference a neopo installation in some way, but it doesn’t.

Hey @markwkiehl, sorry for the confusion.

You need to run the pip install command from within the cloned neopo repository.

The following should work in your case:

git clone https://github.com/nrobinson2000/neopo
cd neopo
python3 -m pip install .
neopo install

Raspberry Pi manifest.json bug is back

Hi Nathan. I’ve been using neopo and it has helped tremendously with productivity. I hope you are still working the project.

I experienced the “manifest.json bug” of 2021 and it seems to have returned on the RPi. It throws the missing manifest error on installation and thereafter cannot download the executables.

I have tried it on 2 x86 Ubuntu boxes and it installs fine, so it seems to be specific to RPi.

These are RPi4 with the latest (last week’s) full “Raspberry Pi OS with desktop and common applications” installed.

I have tried with Particle pre-installed, and without, with same results. A typical log is pasted below.

Any help you can provide will be most welcome.

Thanks,
Bill

pi@raspberrypi:~ $ particle version
3.7.0
pi@raspberrypi:~ $ which neopo
pi@raspberrypi:~ $ bash <(curl -sL neopo.xyz/install)
Installing Linux dependencies...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
dfu-util is already the newest version (0.9-1).
git is already the newest version (1:2.30.2-1).
jq is already the newest version (1.6-2.1).
libarchive-zip-perl is already the newest version (1.68-1).
libfl-dev is already the newest version (2.6.4-8).
libisl15 is already the newest version (0.18-4).
libncurses5 is already the newest version (6.2+20201114-2).
libudev-dev is already the newest version (247.3-7+rpi1+deb11u1).
libusb-1.0-0-dev is already the newest version (2:1.0.24-3).
python3 is already the newest version (3.9.2-3).
python3-setuptools is already the newest version (52.0.0-4).
vim is already the newest version (2:8.2.2434-3+deb11u1).
python3-pip is already the newest version (20.3.4-4+rpt1+deb11u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Cloning into '/tmp/tmp.fstOq0UvT6/neopo'...
remote: Enumerating objects: 1785, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 1785 (delta 4), reused 7 (delta 4), pack-reused 1768
Receiving objects: 100% (1785/1785), 3.32 MiB | 1.41 MiB/s, done.
Resolving deltas: 100% (1040/1040), done.
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /tmp/tmp.fstOq0UvT6/neopo
Building wheels for collected packages: neopo
  Building wheel for neopo (setup.py) ... done
  Created wheel for neopo: filename=neopo-361-py3-none-any.whl size=39744 sha256=8c3ea1e73b4437c0ea1ec6d3516de547d54787d657d8a4a6178ee2e7b2716c12
  Stored in directory: /tmp/pip-ephem-wheel-cache-0tb3r9ty/wheels/38/70/a2/beb426c12a78cb4bd87e76038794153f054ca7845f71c7dde2
Successfully built neopo
Installing collected packages: neopo
Successfully installed neopo-361
Installing neopo...
Finding Workbench extension URL...
Downloading Workbench extension...
Failed to download particle executable from extension!
Error: file /home/pi/.neopo/cache/manifest.json not found.
Please ensure that you have installed the dependencies:
	$ neopo install
pi@raspberrypi:~ $ neopo update .
Updating dependencies...
Finding Workbench extension URL...
Downloading Workbench extension...
Failed to download particle executable from extension!
pi@raspberrypi:~ $ neopo upgrade
This command is deprecated because neopo is now installed using pip or the AUR.
To upgrade neopo, either rerun the universal installer, or follow distribution
specific instructions.