Skip to content

Add blog post detailing experience and contribution to Sugar Labs pro…#843

Open
Soniyakmt wants to merge 1 commit into
sugarlabs:mainfrom
Soniyakmt:solution-www-v2
Open

Add blog post detailing experience and contribution to Sugar Labs pro…#843
Soniyakmt wants to merge 1 commit into
sugarlabs:mainfrom
Soniyakmt:solution-www-v2

Conversation

@Soniyakmt
Copy link
Copy Markdown

@Soniyakmt Soniyakmt commented May 14, 2026

Introduction
I recently worked on a Sugar Labs project inside the Sugar activity ecosystem, focusing on a small but important bug in a learning activity. Sugar Labs builds educational software that helps children learn through exploration and collaboration. This post shares a real debugging story from that project, explains the problem I faced, and describes how I fixed it.

The Problem
The issue surfaced in a Sugar activity that guided users through tutorial stages. One of the tutorial steps failed to load correctly when users returned to the activity after closing it, causing the stage progress to reset unexpectedly. This was significant because the activity is designed for learners to complete sequential stages, and losing progress undermines the learning flow and user trust.

Debugging and Solution

  1. Reproduced the bug locally by opening the activity, completing a stage, closing it, and reopening.
  2. Inspected the relevant code in [tutorial_stages.py] and nearby activity state management files.
  3. Found that the state-saving logic did not persist the current tutorial stage correctly on activity shutdown, so the next start always loaded the default first step.
  4. Added explicit save/load handling for the tutorial progress state, ensuring the current stage identifier was written to the activity’s datastore and restored on startup.
  5. Verified the fix by repeating the reproduction steps and confirming the activity resumed at the expected stage.

Challenges and Takeaways
The main challenge was understanding how Sugar activity lifecycle events map to state persistence. Sugar activities use a different model from standard desktop apps, and the bug was subtle because the visual UI appeared to work until a restart. I overcame this by tracing lifecycle hooks and making sure the state was explicitly serialised before the activity closed.

Key takeaways:

  • Always validate persistence across activity restarts, not just in a single session.
  • Working with educational software requires extra care for user progress and continuity.
  • Community projects benefit from clear, incremental debugging and testing steps.

Impact and Conclusion
Fixing this bug improved the activity’s reliability and made the tutorial experience more stable for learners. It also helped maintain trust in the Sugar Labs community by showing that small usability issues matter.

In summary:

  • I identified a progress persistence bug in a Sugar activity.
  • I debugged it by tracing the lifecycle and datastore behaviour.
  • I fixed it by saving and restoring the tutorial stage state properly.
  • The result was a more dependable learning activity and a better experience for users.

This experience reinforced that community collaboration and careful debugging are essential for educational software.

@github-actions
Copy link
Copy Markdown

❌ Checks Failed

Status: 🚫 Not ready to merge

Please fix the following issues before merging:

📝 Code Linting Failed

Issue: Code formatting or style violations detected.

Specific problems:

• Markdown linting failed

How to fix:

Platform Command Description
🐧 Unix/macOS/Linux npm run format Auto-fix all formatting issues
🪟 Windows npm run format:file <filename> Fix specific files
🔍 Check Only npm run format:check Check formatting without fixing

Need help with linting? Check out the Linting Guide for Windows Users for detailed instructions.


🛠️ Next Steps

  1. Fix the issues mentioned above
  2. Test locally to ensure everything works
  3. Push your fixes to this branch
  4. Wait for re-check - This bot will automatically run again

🤖 This comment will be updated automatically when you push new commits

@pikurasa
Copy link
Copy Markdown
Contributor

This PR failed the linting test.

Please read:

and try again. Make sure that you can run it on your own machine and read through it before resubmitting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants