Skip to content
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

jazzy cannot run on mac_ios_engine Mac arm bot #124833

Closed
jmagman opened this issue Apr 14, 2023 · 18 comments · Fixed by flutter/engine#43915
Closed

jazzy cannot run on mac_ios_engine Mac arm bot #124833

jmagman opened this issue Apr 14, 2023 · 18 comments · Fixed by flutter/engine#43915
Assignees
Labels
engine flutter/engine repository. See also e: labels. P2 Important issues not at the top of the work list team-infra Owned by Infrastructure team triaged-infra Triaged by Infrastructure team

Comments

@jmagman
Copy link
Member

jmagman commented Apr 14, 2023

I tried to swap mac_ios_engine orchestrator to arm64 Macs to leverage that bot capacity in flutter/engine#41185. However it failed on the obj-c-doc step with "Could not find 'sqlite3'"

 /Volumes/Work/s/w/ir/cache/ruby/.cipd/pkgs/0/7BJOF4R2SzfKZnk0BZpiDRQmb_RD79GlZrPpOydeydIC/lib/ruby/3.1.0/rubygems/specification.rb:1453:in `rescue in block in activate_dependencies': Could not find 'sqlite3' (~> 1.3) among 131 total gem(s) (Gem::MissingSpecError)
 Checked in 'GEM_PATH=/Users/chrome-bot/.local/share/gem/ruby/3.1.0:/Volumes/Work/s/w/ir/cache/ruby/.cipd/pkgs/0/7BJOF4R2SzfKZnk0BZpiDRQmb_RD79GlZrPpOydeydIC/lib/ruby/gems/3.1.0:/Volumes/Work/s/w/ir/cache/gems/ruby/3.1.0' at: /Volumes/Work/s/w/ir/cache/gems/ruby/3.1.0/specifications/jazzy-0.14.3.gemspec, execute `gem env` for more information

https://ci.chromium.org/p/flutter/builders/try/Mac%20mac_ios_engine/8101

flutter/ruby/mac-arm64 and flutter/jazzy/mac-arm64 cipd packages are being installed. See also #118464

cc @godofredoc

@jmagman jmagman added the team-infra Owned by Infrastructure team label Apr 14, 2023
@jmagman jmagman changed the title jazzy cannot run on Mac arm engine builders jazzy cannot run on mac_ios_engine Mac arm bot Apr 14, 2023
auto-submit bot pushed a commit to flutter/engine that referenced this issue Apr 14, 2023
Intel Mac capacity is limited. Run the `mac_host_engine` orchestrator builder on Mac arm bots which we have a higher capacity of than the Intel Macs.  It needs Xcode to stitch together the frameworks and therefore to run on Mac, but isn't building anything itself.

Running on arm: https://ci.chromium.org/p/flutter/builders/try/Mac%20mac_host_engine/8593

I wasn't able to get this working on `mac_ios_engine` due to a gem issue, filed flutter/flutter#124833
@jmagman jmagman added the engine flutter/engine repository. See also e: labels. label Apr 14, 2023
@chinmaygarde
Copy link
Member

chinmaygarde commented Apr 17, 2023

Instead of Jazzy, could we just use something like Doxygen for Obj-C doc generation? I feel like this has been a constant source of issues on CI.

@chinmaygarde chinmaygarde added the P2 Important issues not at the top of the work list label Apr 17, 2023
@godofredoc
Copy link
Contributor

Instead of Jazzy, could we just use something like Doxygen for Obj-C doc generation? I feel like this has been a constant source of issues on CI.

+1 on removing the jazzy dependency if possible. Last time I spent 2 weeks on getting it working properly.

@zanderso, @dnfield do you remember what was the outcome of the conversation about replacing jazzy with something else from a few months ago?

@dnfield
Copy link
Contributor

dnfield commented Apr 26, 2023

I have no objections to using doxygen instead of jazzy. I have a vague memory of looking into doing it a few years ago, and at the time it seemed as complicated or more than just using jazzy. That may have changed or I may be remembering wrong.

@flutter-triage-bot flutter-triage-bot bot added team-engine Owned by Engine team triaged-engine Triaged by Engine team and removed team-infra Owned by Infrastructure team team-engine Owned by Engine team triaged-engine Triaged by Engine team labels Jul 8, 2023
@flutter-triage-bot
Copy link

Issue is assigned to multiple teams (infra, engine). Please ensure the issue has only one team-* label at a time. Use fyi-* labels to have another team look at the issue without reassigning it.
The triaged-engine label is irrelevant if there is no team-engine label or fyi-engine label.

@Hixie Hixie added team-infra Owned by Infrastructure team and removed passed secondary triage labels Jul 8, 2023
@gspencergoog
Copy link
Contributor

It seems that Doxygen is already configured for the Engine repo (there's a Doxyfile at least that seems to build real docs), but it seems to only be used for making sure that there aren't any undocumented APIs on iOS.

Is there any problem with publishing that instead of using the Jazzy results?

(cc @gaaclarke, who added the Doxyfile)

@dnfield
Copy link
Contributor

dnfield commented Jul 25, 2023

IMHO we should prioritize what will work better on CI for this rather than worrying about if it looks the same as what Jazzy was producing.

@gspencergoog
Copy link
Contributor

Works for me. Doxygen seems like it's fine just cramming APIs from multiple platforms into one page, though, so I'm trying to figure out how to separate it into different runs that make sense. For example, it took code from the two different files called FlutterEngine.mm in both iOS and macOS, and crammed them all into one FlutterEngine page when I tried to run it on the entire tree. I'm running it multiple times on subsets of the tree now, and that seems to work better.

@gspencergoog
Copy link
Contributor

For iOS, what should the migration be for the existing docs? For instance, they are currently hosted under https://api.flutter.dev/objcdoc/, built by jazzy. I'd like to change the name to something like https://api.flutter.dev/ios_embedder_docs/ and build them with Doxygen.

I don't see how we can keep legacy links valid and redirect them without just building the jazzy docs and continuing to serve them.

Should we just build and serve both, but only link the doxygen docs in the API docs, and then stop building the old ones once the next stable comes out with the updated links? (or a year after they come out?)

auto-submit bot pushed a commit to flutter/cocoon that referenced this issue Aug 2, 2023
## Description

This adds a build script for creating a doxygen executable that can be placed into a CIPD package.

## Related Issues
 - flutter/flutter#124833
@gspencergoog
Copy link
Contributor

Not yet. I haven't yet landed the Framework side changes that include links to the new documentation generated by doxygen, so we should continue to produce the Jazzy docs until I can replace them with the doxygen ones.

Draft PR is here: #131356

@gspencergoog gspencergoog reopened this Aug 18, 2023
@gspencergoog
Copy link
Contributor

Also, how concerned are we that the old URLs to the Jazzy docs won't match the URLs for the new docs? I don't want to invalidate people's links, but we also can't keep generating the Jazzy docs.

@zanderso
Copy link
Member

Can you add some more detail about what links will be changing?

@gspencergoog
Copy link
Contributor

If you have a link to the current set of Jazzy-produced docs, you have something like:
https://master-api.flutter.dev/objcdoc/Classes/FlutterEngine.html

Once I make the change to the doxygen generated docs, it will be something like this:
https://master-api.flutter.dev/ios-embedder/interface_flutter_engine.html

@gspencergoog
Copy link
Contributor

I would suggest some kind of redirect scheme, but that's likely to a) be super complex and b) not necessarily map 1:1 (some things in Jazzy docs might only have one URL, where in doxygen they might be several URLs, or vice versa).

I thought about keeping around the most recently generated Jazzy docs, but those would just quickly get out of date.

We could perhaps redirect all of the docs under "objcdoc/*" to the main index file for the doxygen docs. At least then they could search for what they were looking for, and wouldn't get a 404.

@gspencergoog gspencergoog self-assigned this Aug 18, 2023
@zanderso zanderso reopened this Aug 21, 2023
gaaclarke pushed a commit to gaaclarke/engine that referenced this issue Aug 30, 2023
…er (flutter#43915)

## Description

This starts generating Doxygen docs for iOS, macOS, Linux, Windows, and Impeller. It doesn't remove the existing generation for iOS for now, until we can migrate the API docs to include these instead of those.

## Related Issues
 - flutter/flutter#130999
 - Fixes flutter/flutter#124833
@yusuf-goog
Copy link
Contributor

@gspencergoog is there something infra needs to do for this issue?

@yusuf-goog yusuf-goog added the triaged-infra Triaged by Infrastructure team label Sep 7, 2023
@gspencergoog
Copy link
Contributor

There are some spurious files/directories in the CIPD packages that have to do with doxygen, and those can be permanently removed. since those executables were never in use. This directory can be removed: https://chrome-infra-packages.appspot.com/p/flutter/doxygen

We'll have to keep the jazzy CIPD package around to be able to build historical builds.

Right now, Jazzy is still being run, but I'll make a PR to stop doing that now that we have doxygen links in the API docs.

auto-submit bot pushed a commit that referenced this issue Sep 8, 2023
## Description

Now that we are using Doxygen for building docs for the embedders, this updates the links to point to the correct URLs.

## Related Issues
 - #124833

## Related PRs
 - flutter/engine#45561
auto-submit bot pushed a commit to flutter/engine that referenced this issue Sep 8, 2023
…r of Doxygen. (#45561)

## Description

This removes references to Jazzy, and removes the `gen_objcdoc.py` script, since that is now handled by `gen_docs.py`

## Related Issues
 - flutter/flutter#124833

## Related PRs
 - flutter/flutter#134246
@gspencergoog
Copy link
Contributor

Okay, Jazzy is no longer being used, and we've switched to Doxygen.

@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
engine flutter/engine repository. See also e: labels. P2 Important issues not at the top of the work list team-infra Owned by Infrastructure team triaged-infra Triaged by Infrastructure team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants