maxchuquimia / xcgrapher

Framework-level dependency graph generator for Xcode projects - with support for custom graphing
101 stars 8 forks source link

What happened to the --workspace option? #17

Open michelle-koneksa opened 1 year ago

michelle-koneksa commented 1 year ago

I'm running into the "checkouts doesn't exist" error, which I infer may be happening because I am trying to work with an xcodeproj that isn't at the root of the workspace. I expect this is what the --workspace option was supposed to help with.

xcgrapher --workspace="SomeApp.xcworkspace" --scheme="SomeAppScheme" --spm && open /tmp/xcgrapher

can be found in the README for https://github.com/maxchuquimia/xcgrapher/pull/10, but I can't find a commit for which this will work.

Thanks!

AdiAyyakad commented 1 year ago

Ditto I'm running into the same issue with the same problem - xcodeproj not at the root level

maxchuquimia commented 1 year ago

Hi All, apologies for the slow replies! I don't forsee myself having a lot of time to look into an easy solution for this... but if it's just an Xcodeproj location version then perhaps it won't take much time.

Can you please provide an example of what you mean by the xcodeproj not being at the root level? Or do you just mean:

/dir
    W.xcworkspace
    /dir
        Project.xcodeproj

I need to be able to reproduce the issue on my end to attempt a fix, thanks!

michelle-koneksa commented 1 year ago

@maxchuquimia The example you provide above is almost exactly the situation.

/dir
    W.xcworkspace
    /submodules
       /submoduleA
           SubmoduleA.xcodeproj
       /submoduleB
           SubmoduleB.xcodeproj
       /submoduleC
           SubmoduleC.xcodeprojj
...etc.
michelle-koneksa commented 1 year ago

@maxchuquimia I'm still curious about the missing support for the --workspace flag. When I try to use it I get the following error:

Error: Unknown option '--workspace'
Usage: xcgrapher [--project <project>] --target <target> [--package <package>] [--podlock <podlock>] [--output <output>] [--plugin <plugin>] [--apple] [--spm] [--pods] [--force]
  See 'xcgrapher --help' for more information.
maxchuquimia commented 1 year ago

Thank you, I've set aside an hour later today to create a similar workspace and see if it's easily parseable...

The reason a workspace flag wasn't added was that if you only have a single project in the workspace, you can just pass the path to the project instead (which was my setup when building the tool).

maxchuquimia commented 1 year ago

Okay, I think I have something... would appreciate it if someone could give it a manual test before I merge (branch is issue/17). Pass --workspace and --scheme instead of --project and --target 🫡

When it came to doing it I wasn't entirely sure how the graph should actually look when starting from a workspace (as a workspace itself has multiple entry points). So, I have made the workspace first point to all possible entry points (all targets embedded in the workspace) as seen below:

xcgrapher

If this isn't acceptable, we may need to change it to force passing both --workspace and --project to narrow down the graph 😅