-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
include all dashboard files in a single repo #5
Comments
Yessssss. Great idea. Good job tracking all these pieces down. I propose we move everything to peoplesopen-dash and then have a deploy script that just copies all the files over and runs
Do you know where/when this copying happens exactly? We probably need to change some things in the firmware build for this reorganization to work. |
Good idea. Here's out I'd approach this.
Sounds like following steps could help:
|
Thanks for these detailed comments @gobengo ! I think I like the sound of that organization but will reply more in depth when I've had a chance to look more closely. (Two more days of teaching gasp) Pasting some links to ubus/rpcd docs so I don't forget: |
@gobengo good ideas! I feel better about putting all the dashboard configs in the firmware now that we aren't using makenode. The only reason to keep sudowrt-packages would be if we made more packages and actually maintained them through that repo, I don't see that happening anytime soon. As far as dev environment is concerned, you are correct about the run-time dependencies, @bennlich provided the documentation for both. I think it would be possible to create a node-less dev environment, but you would have to "spoof" the ubus connection somehow. My approach would be to ignore the calls to ubus when in dev env and, instead, use an alias of some sort that references example uci data stored in this repo. Alternatively, we could create a fake rpcd server? |
This is the approach I've started on. Essentially stubbing ubus API calls with captured replies. I'm not super deep in though so if we figure out a better way, can change gears. |
a mock of rpcd is a cool little component, shouldn't be too expensive to make (I think?) at least far enough for dash to use, and may be useful to other systems out there that dep on rpcd. Way to go @bennlich . Sounds like you're running with it, but being a bit unfamiliar with all this, the first think I'd do is list all the rpcd API calls that the dash makes. That becomes a checklist we can use to track progress on the mock (and split up tasks to parallelize) |
@bennlich hope you are making some progress on the mock ubus idea. I have a possible alternate solution for a "node-less" dev environment. As suggested in the README, we could use a virtual machine. This would have the added benefit of providing a more streamlined dev cycle for the firmware in general. I was able to create a virtual machine image of sudowrt by just changing the Target System and Target Images before running make (as suggested here, https://wiki.openwrt.org/doc/howto/virtualbox). It is still very janky (it's having trouble getting all the packages) but I am able ssh into it through a virtual adapter as though it were a real node. While creating a virtual machine build of the firmware is a larger project than creating a fake ubus/rpcd, it could be a nice way to generalize our firmware and improve our build process. |
Currently, files for the dashboard are split as follows,
peoplesopen-dash - build which is copied into '/www'
sudowrt-packages - a few rpcd configs that are copied into /usr during make install of package.
sudowrt-firmware - infogather that gets put in /www/cgi-bin when the firmware is built.
This makes updating the dashboard awkward and confusing. Most of the sudowrt-packages stuff is a hold over from the old web ui. I'm not sure the best approach to building/deploying the dashboard, it would be nice if everything were unified in a single repo. Any ideas @eenblam @bennlich or @gobengo ?
The text was updated successfully, but these errors were encountered: