-
Notifications
You must be signed in to change notification settings - Fork 3
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
Improvements to challenge spec sync #269
Labels
enhancement
New feature or request
Comments
sei-bstein
changed the title
Improvements to challenge sync
Improvements to challenge spec sync
Oct 12, 2023
sei-bstein
added a commit
that referenced
this issue
Oct 25, 2023
…. Partially addresses #269, but we can and should eventually do more.
sei-jbooz
pushed a commit
that referenced
this issue
Nov 3, 2023
* Removed test (the rule is no longer true) * Playing with various pdf rendering options? * Various code cleanup * Do server-side rendering of certificates in PNG format. * Update tests * Finish server side generation of html for both practice and competitive. * Fix test signatures * Make published certificate collections on User default to empty lists * Bug fixes for various practice mode session end things. * Test fixes * Bug fixes to practice mode. * Addresses #236 along with a sister commit in GBUI. * Fix test types * Update dockerfile for chromium install. * Update Dockerfile - move chromium install to production multistage. * Accommodate docker execution of chromium with --no-sandbox * Disable use of dev shared memory for chromium image generation. * Request full challenge doc from Topomojo during spec sync. * Fix for challenge doc text in practice mode * Try wkhtmltopdf as alternate image generation tool. * Use correct version of wkhtmltopdf binary * DB changes for require sponsor * Remove stray pdf * Decrease quality of images rendered by wkhtmltoimage * Set wkhtmltoimage quality to 30 * Rename player-facing 'Practice Mode' to 'Practice Area' * Fix practice area report routes * Fix count issue on the player prac/competitive report * Fix a count issue on the 'by challenge' grouping of the practice area report. * allow authenticated users to retrieve practice mode settings * Fix grouping issue with per-mode practice area report * Code cleanup * Fix typo in Enrollment report desc * Correct calculation of users per sponsor in Enrollment report. * Change roles who can access reporting. * Improve summary info on report cards to better reflect the corresponding reports. * - corrected an issue that caused practice challenges to appear as though they were created a million years ago in challenge admin. - The search box on Challenge Admin now automatically trims whitespace. (Resolves #247) * Resolved an issue which caused the enrollment report to fail to report challenges assigned to games which are in practice mode (even if the challenge was played competitively. * Fix failing unit test and add a new one for prac/comp challenge/game fiasco on Enrollment report. * Resolved an issue that prevented non-registrars from extending/resetting their practice sessions. * Code cleanup and add dev env logging. * FIxed an issue that prevented the support report's CSV export from working as expected. * Resolved issues that caused errors upon invocation of the support and enrollment reports CSV exports from the client. * Resolved an issue that caused the list of attempts in the practice report -> by player to be displayed out of chronological order. Resolves #251. * Removed an unnecessary db call from the Enrollment report. * More sponsor fixup * Require sponsor * More work on require sponsor * Prohibit sponsorless players from enrolling in games. * Sync start games with no players are no longer sync-start ready. Exception will throw if game is started with no players. * Code cleanup * Prevent players from registering practice challenges (in addition to games) with no sponsor. Code cleanup also * MOre work on require sponsor schema change. * Remove designer from role list for admin enroll. * More sponsor fixup * Restore game end date on failed deploy. * Fix an issue where ChallengeService wasn't respecting the StartGamespace flag. * ACTUALLY respect StartGamespace flag (in GameEngine service. * ACTUALLY respect StartGamespace flag (in GameEngineService). * More sponsor schema * Finalized user/player sponsor schema changes before fixing tests * Remove default value for HasDefaultSponsor - handling it in app logic since CLR types are weird * Remove use of env in GameboardDbContext (we handle this in app start up now via DataStartupExtensions) * Add migration for sponsor schema change. Add log for enabling sensitive logging in dev envs. * Correct migration to populate HasDefaultSponsor based on pre-migration Sponsor value. * Optimize PG migration and add SQLserver custom migration. * Cleanup * Allow the GEtUserActiveChallenges op to return challenges with no end date. Create distinct exceptions for practice mode gamespace count limit vs. game-level ones. * Code cleanup * Fixed a bug that could prevent cleanup of a challenge with a bad teamid. Added logging to challenge archiving. * Tone down EF query logging in non-prod environments. * Cleaned up resolution of team gamespace limit, refactored, and added an endpoint for team gamespace limit state (Accessible only by players on the team). Will be used in the future to support better messaging around gamespace limit. * Update test signatures * Make practice mode gamespace limit eval use common logic with competitive. * Add logging messages for EF logging configuration (loggingception) * Add logger to datastartupextensions * Log GameboardExceptions as 500-level (since they're app failures, not incorrect calls) * Fix expected exception in player unenroll tests * Code cleanup * Remove logging config meta-logging - EF settings were being overridden by global Logging__LogLevel__Microsoft in the chart. * Improvements to ef logging structure. * Reverse changes that allow player records with no end date to yield active challenges (practice mode ends sessions by setting player endtime to nullish, so we need to use another criterion. * Correct use of .First * Disable the developer exception page by default, even in devenvs (because it alters API error reporting behavior) * Return game challenge specs in alpha order. * Code cleanup * Supporting exception architecture for non-null/foreign key sponsors. * Update build task to include all projects. * Clarify default sponsor assignment. * Improvements to specimen builders for integration tests (supporting sponsor changes) * Enable sensitive data logging only in dev * Consolidate data state builder interface. Don't swallow exception on add. * Namespace cleanup * Resolve usercontroll test errors * Updates to tests to use fixture/specimen creation * Revise tests to accommodate non-null sponsors * More work on require sponsor - new schema changes. * Unready players on session reset. Resolve issue where challenge state for external games did not include VM data. * More backend for require sponsor - streamlined sponsor API. * Clean up sponsor controller/command architecture. * Update content type validation for sponsors * More required sponsor - remove manual tracking of team sponsors, adjust API shape to serve sponsor data alongside user data. * Start on parent sponsor * Refactor the set avatar operation for sponsors into its own thing since it requires a different content type. Insert 'other' sponsor if it doesn't exist on migration. * Reshape sponsors endpoints to make more sense. * Fix broken sponsor test * Correct resolution of captain during player enlistment by invitation code. Resolves #194. * Resolves #156 and adds unit tests. * Move unit test of enroll to integration test because of mocking limits (and because we didn't have an int test on enroll anyway. * Code cleanup * Add logging for challenge service team challenge archive. * Don't depend on HasGamespaceDeployed to attempt challenge and gamespace cleanup. * Ignore HasDeployedGamespace when cleaning up challenges after team reset (because it currently depends on whether the VMs are on) * Guard against challenges with players that no longer exist. * Guard against challenges not having players attached by team Id * Ported fix to job service from gamebrain integration branch. Resolves #235. * Add solution guide field for challenge specs (for practice mode). Resolves #234. * Add extra logging for API failures during sync. * Add suggested searches to practice area. Resolves #233. * Merged from next * Fix service registration issues from merge * More merge madness * Add challenge search by playerId. Resolves #263. * Also search challenges by TeamID * Merge corrections * Restore model snapshots after merge * Adjust failing tests * Addresses an issue where asset links in challenge markdown were sometimes resolved incorrectly (leading to broken links). Resolves #213. * Extend fix for #213 to practice. * Fixing merged tests. * Resolve an issue that was causing overcorrection of absolute urls in challenge docs. * Resolving merge conflicts and update collection name for 'publish certificate' to match the domain model. * Update gitignore * Add toggle to allow display of solution guides in competitive mode. Always show the solution guide input in admin. * Merge changes to new request to comply with revised architecture * Fix unit tests * REmove unused variable * Correct mistyped validators * Fix improperly typed validators. * Fix some 'unenroll/session reset' bugs in the new codebase. Rename ResetSession to ResetTeamSession. * Distinguish between update/add on Store service. * Add logging for challenge sync at the info level. * Remove unused validator. * Add tags field to challengespec (need updated topo lib to make tags searchable in practice mode. * bug fixes to automatic bonuses and regrading. * Code cleanup * Bug fixes to autobonus architecture, foundations of new scoreboard * Clarify error message for captain unenroll attempt. * Minor structural updates to external game launch. * Fixed bugs in external game launch start and transactionificated the launch. * Code cleanup and pulled an unused endpoint * Add tags to challenge spec sync from topo and make them searchable in the practice area. Resolves #240. * Remove unused code * Remove unused references from PlayerService * Guard against null TeamId in PlayerService. * Add cleanup of topo gamespaces abandoned by a failed launch. * Complete gamespaces orphaned during external game launch rather than deleting them (due to permissions) * Fix url resolution for VMs in external games. * Fix failing tests * Refactor of end/extend session endpoint architecture to accommodate #217 * Add new consoles endpoint to receive user activity requests from MKS. Supports autoextension of practice challenges (#217) * Allow console access to new consoles controller. * Pull unnecessary injection * Add test and correct bug for non-extending practice sessions. * Handle competitive case in console action autoextend * Remove unnecessary injection * Remove unused file * Fix an issue that caused errors for new Gameboard users who haven't yet been assigned a sponsor. * Start create test * Start unit test for claims transformation. * Finish user claims transformation unit test. * Revise test * Corrected a bug introduced by the merge which made admins unable to approve user name changes. * More work on new scoreboard. * MOre work on scoreboard. * Work on scoring service and correcting an issue which made practice settings not retrievable without auth * Add integration test for player enlist * Clarify comments * additional support for the new scoreboard/scoring infra * Corrected an issue that caused the practice report's summary widget to report the number of sponsors incorrectly. Resolves #271. * Fixed broken integration test * Temporarily set extend threshold for practice at 58 minutes * Temp disable test for demo. * Auto session extend in practice now returns the new session length. * Work on integration tests for grading and ranking. * Add signalR messaging for automatic session extension. Resolves #217. * Fix grading test * Fix failing bonus test. * Correct use of single or default * Added challengespec sync for active or practice challenges on startup. Partially addresses #269, but we can and should eventually do more. * Ensure session extensions don't shorten playtime. * Fixed a merge-related issue that caused the client to claim that an administrator reset the session (when really the user did) * Fix a bug in score reporting for teams * Correct score tests to use appropriate field. * Send gamespace start notifications to the game hub. * Change external game mode start state to indicate gamespaces starte rather than deployed. * Rename the active challenge spec sync startup function to be more general in case we need it for other stuff. * Added a service to manage fire-forget tasks (like external game deploy, challenge spec sync, etc. * Added validation during enlist that ensures the player has selected a sponsor. Resolves #261. * Remove unused namespace * Added fire+forget for external launch and batch deploy. Fire and forget still needs a resolution for http context. * Add logging on console access attempt. * Code cleanup * Guard against null teamIds in enrollment report. * Add tests for batch deploy of external game resources. * Fixed an issue that prevented player scores, ranks, and challenge completion counts not to be zeroed when their session is reset but not unenrolled. * Guard against legacy null teamIds in players table. * Code cleanup * Set default external game deploy batch size to 2 and disable it until I can test with access to Topo. * Added additional logging for gamespace batching. * Tweaking use of ienumerable in ExternalGameSyncSTartService to see if it affects deploy speed. * Add debugging batch index * Pull async deploy for now since we haven't used it successfully yet. * Test new batch size and coerce ienumerables to arrays from the batching service. * Reset external game batch settings. Not ready for primetime. * If attempting to sync an expired challenge yields a 400-level error, just mark it as synced so we don't try again. * Fixed an issue where a legacy gamebrain call was prepending a configurable startup URL for the new mode. * Resolved an issue with the old scoreboard displaying sponsors incorrectly.
Challenge Specs Synced with Game Engine (TopoMojo) on application startup released in v3.12.0. This is sufficient for now. We can revisit if the need arises. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Gameboard builds the name, description, text, and tags of challenge specs from Topomojo workspaces. Currently, this only happens when a user manually initiates the sync from Admin -> Game settings or when a spec is added to a game.
Given that these properties don't change anything about the actual process of solving the challenge, we'd like to reduce the burden of requiring a manual sync. Options include a recurring process (like the one we use to expire dead challenges) or an automatic sync when a spec is previewed.
The text was updated successfully, but these errors were encountered: