vircadia-native-core
vircadia-native-core copied to clipboard
Drop all dependencies on marketplace and wallet
This PR attempts to drop all references to the High Fidelity marketplace and wallet. Some effort has been made to prevent this from being a protocol-break (although there's a fair number of enums and entity packet content that could be pruned out once this is landed).
Going over the commits, things this thing removes:
- All avatar and domain ownership challenges
- Queries to FST files to see if they came from the marketplace
- Permissions "can rez certified" and "can temprez certified"
- The "Wallet" and "Marketplace" apps, along with the majority of the "Security" app
- A context overlay of some kind showing the current marketplace status of any item
- The "upload Avatar to Marketplace" tool
- The scripting objects ContextOverlay and WalletScriptingInterface
- 12 entity properties exclusively used for the marketplace (still kept in the protocol stream for compatibility, but unused)
- Assignment Clients being paid for their work (related: the -wallet option on assignment-client)
Note that I did pick up on an apparent typo in AssignmentClientApp that on its surface appears to effectively disable the -a and -p options; I'm sorely tempted to break this up into its own patch for independent review (it must stay as part of this patch as well though)
ContextOverlay may or may not have been useful for security reasons? We should look into that to ensure there's not some usefulness to having something like that regardless.
Yah that was a bit confusing to me too. Everything I saw had it keyed to ownership challenges for objects though, which was square in the crosshairs of this PR. Once I dropped those there was basically nothing left. I don't really know the value of empty containers at this point. Heck I think I may have left an empty .cpp file in this project after stripping out all the code...
MixerAvatar.cpp likely can be deleted as well. MixerAvatar.h is still in use and appears to have value (even though 90% of it has been removed)
The following links are available: build (windows-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-0ddb89a_c26bec3a.exe
build (macOS-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-0ddb89a_c26bec3a.dmg
build (ubuntu-18.04, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-0ddb89a.tar_c26bec3a.Z
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-0ddb89a.tar_c26bec3a.gz
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-0ddb89a_c26bec3a.sh
Have rebased & squished the commits in this PR. Will compile/smoketest as well as remove MixerAvatar.cpp
Smoketested the interface and dropped the empty MixerAvatar.cpp file. Note that I have not yet done any testing of the server.
The following links are available: build (ubuntu-18.04, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-f91e841.tar_b9dbda9c.gz
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-f91e841.tar_b9dbda9c.Z
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-f91e841_b9dbda9c.sh
build (windows-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-f91e841_b9dbda9c.exe
build (macOS-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-f91e841_b9dbda9c.dmg
Could you get rid of the merge conflicts so I can build and test this? I cannot view the conflict, so I have no idea how big of a change it might be.
Rebased / squished the commits in this PR. Have compiled / smoketested to check for any obvious issues.
The following links are available: build (macOS-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-5535bf8_3a4051bd.dmg
build (ubuntu-18.04, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-5535bf8.tar_3a4051bd.gz
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-5535bf8_3a4051bd.sh
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-5535bf8.tar_3a4051bd.Z
build (windows-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/kasenvr_project-athena/PR666/Vircadia-Alpha-PR666-5535bf8_3a4051bd.exe
Building works fine at the very least https://appimage.moto9000.moe/experimental/PR666/Vircadia-x86_64_PR666_3a4051b.AppImage
I haven't had any problems with this yet.
I think it would be better, as a first step, to disable items (e.g., don't show UI and/or comment out code) rather than a wholesale deletion of code - some of which may prove useful in the future (either as actual code or implementation hints) should we want to address similar functionality. Some code might be able to be removed after considering it, piece by piece.
This deletion approach was done as it tends to be a bright-line describing all the code in the system that depends on the wallet in some form. Commenting out code can be a fine line between keeping code that may be useful in the system and keeping significant junk in the codebase that will never be used in the future. I do recognize the amount of loss that is involved in this patch though; a lot of the deletions I've made represented unrealized potential that I would really have liked to have seen happen.
If some of this code has value to be kept in the system then yah let's keep it in (potentially commented out). Such decisions would have to be intentional though; the code is linked together enough that cauterizing parts of it out would take a bit of effort.
I would not be against somehow breaking this PR up into smaller sub-PRs (and smaller decisions on what to drop).
A series of smaller PRs, each focused on a particular area, may well be better. Even if, combined, they all end up removing the same code, at least we'll have merge commits in effect documenting code points likely to be involved if we want to re-enable or implement some particular feature at some later date.
No major objections, PR #667 was originally part of this patch too. Would like to keep this PR open until a final decision is made on the whole (or the remaining) though.
Although breaking this up into smaller pieces would likely cause some extra work to be needed depending on the amount of effort required to cauterize the linkages. I wouldn't mind suggestions.
Dev meeting: it could be interesting to review why the merge is failing here -- this is code to remove, so why are changes being made that affect it?
The following links are available: build (macOS-latest, client)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-Interface-PR666-f0e4ca0-_3dbaaf9e.dmg
build (macOS-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-f0e4ca0-_3dbaaf9e.dmg
build (ubuntu-18.04, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-f0e4ca0-.tar_3dbaaf9e.Z
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-f0e4ca0-_3dbaaf9e.sh
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-f0e4ca0-.tar_3dbaaf9e.gz
build (ubuntu-18.04, android)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-Quest-Alpha-PR666-f0e4ca0_3dbaaf9e.apk
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-f0e4ca0_3dbaaf9e.apk
build (windows-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-f0e4ca0-_3dbaaf9e.exe
The following links are available: build (macOS-latest, client)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-Interface-PR666-bd481d1-_97d2dc56.dmg
build (ubuntu-18.04, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-bd481d1-.tar_97d2dc56.Z
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-bd481d1-.tar_97d2dc56.gz
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-bd481d1-_97d2dc56.sh
build (macOS-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-bd481d1-_97d2dc56.dmg
build (windows-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-bd481d1-_97d2dc56.exe
Whether it's broken up for removal or not, I think it's good to remove since it's not being used. If you think it might be useful to implement something in the future, you could then open a new PR adding those parts back in. That might be more subject to merge issues but I think there is practical value in streamlining the code base so it is more intuitive to new contributors. Hopefully this would also speed up the build process a bit.
I think there has been some talk of implementing hypothetical market/commerce functionality purely as a tablet application, or perhaps using a server-side plug-in or module, rather than building it into the application code. Correct me if I'm wrong.
The following links are available: build (ubuntu-18.04, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-e0b209c-.tar_822a0982.gz
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-e0b209c-_822a0982.sh
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-e0b209c-.tar_822a0982.Z
build (windows-latest, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-e0b209c-_822a0982.exe
build (macOS-10.15, full)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-PR666-e0b209c-_822a0982.dmg
build (macOS-10.15, client)
- https://athena-public.s3.eu-west-3.amazonaws.com/builds/PR/vircadia_vircadia/PR666/Vircadia-Interface-PR666-e0b209c-_822a0982.dmg
Hello! Is this still an issue?