Modeling Task Dependencies (Type & Lag) for MS Project XML Compatibility

Hi everyone,

I’m an Outreachy applicant currently contributing to the release-schedule-planner project and have been working on improving areas like task dependencies, metadata support, and datetime precision.

While working on task dependencies, I noticed that MS Project XML supports richer dependency semantics (e.g., FS, SS, lag offsets), which raises some interesting design considerations for how we model and expose these relationships in the API.

I was curious:

  • Would using an Enum for dependency_type be preferable over raw integers for clarity and validation?
  • Are there plans to extend dependency handling further (e.g., validation rules or visualization support)?

I’d really appreciate any insights from others who’ve worked on similar scheduling or planning systems.

Excuse the kind of novice question - this is not my area, but is MS Project XML an open standard?

I’m triggering off of your putting MS Project in the topic title.

What is the type of project that you wish to plan for?

MS Project is useless for software engineering for example.
In software engineering task for often completed out of original planned order.

It is great for building constrution projects where the foundations are poured before you have the walls added.

1 Like

Hi! Not a novice question at all :slightly_smiling_face:

MS Project XML isn’t an open standard in the strict sense—it’s a proprietary format defined by Microsoft. However, it’s fairly well-documented and widely used so many tools can parse and interoperate with it.

In this case, Fedora release schedules are already distributed in this format, so the goal is to accurately ingest and represent that data rather than rely on MS Project itself

1 Like

Thanks, that’s a really good point.

The intention here isn’t to use MS Project for planning software workflows directly, but to model and visualize the existing Fedora release schedule data. These schedules tend to follow more structured, milestone-driven timelines (like freezes, branching, releases), which are a bit different from typical flexible software task execution.

So the focus is more on compatibility and accurate representation of the existing data rather than prescribing a specific development workflow.

1 Like