Hi Brian,
A few more thoughts on the multiple publisher idea, and what we need to do on the server side.
So, let's assume we have a number publishers out there. On server side we need to: 1. Maintain a pool of published winetest.exe's 2. Implement policy to serve from that pool (on a poll even)
1. The pool
The pool will have to be maintained in a persistent manner to survive server reboots. It needs to get saved in a file. It should be managed as such: When a publish event happen we do: - check that the publisher id exists in publishers.txt file (1) - reject the event if not - check that it's really the publisher who publishes (2) - reject if not - check that the new BUILD_ID is >= than the current BUILD_ID - reject if not - if greater, reset the pool - add the published test to the pool - return 'OK'
NOTES: (1) I suggest this format for publishers.txt <publisher-id>:<publisher-base-url> (2) We need to check that someone doesn't want to polute the pool. I suggest checking for the existance of: <publisher-base-url>/<published-file>
2. The Policy
The sky's the limit. For now, we can just pick one at random from the pool.
As it was written in the Book of "Dimitrie O. Paun" dimi@intelliware.ca:
A few more thoughts on the multiple publisher idea, and what we need to do on the server side.
So, let's assume we have a number publishers out there. On server side we need to:
- Maintain a pool of published winetest.exe's
- Implement policy to serve from that pool (on a poll even)
Almost everything is in place to support this already with only some minor changes. In fact, rather than adding stuff I may end up removing some to make it work.
All we do is set a another "cookie" on the winrash side and just make sure it checks with WineHQ about once an hour for a new version. Pretty easy.
-Brian