-
Notifications
You must be signed in to change notification settings - Fork 42
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
improve docs #1148
Comments
Just wanted to +1 improving the table of contents organization as maybe the most important thing in my mind. As far as I remember we tried to play around with this a bit but the sphinx template was hard to understand (we could consider a different template..) But basically there is no organization in the left panel, which makes it almost useless for our example library and our api reference I sometimes use the contents on the right, but it's not as intuitive, and if you're looking on mobile you don't even see that. I'm bringing this up not only because it has been bugging me personally, but I had the same complaint from a user yesterday - that our examples are not organized. I showed him the main page and he was like oh ok, but he had been looking at the left panel up to then. |
Hi guys, all sounds good and I also agree with those points - cheers for the clear plan ahead too! I'm already working on this on these branches and will PR when several points are solved. https://github.com/daquintero/tidy3d/tree/docs_improvement_suggestions Shall I make a flex username too or wait till the instructions of the first day? |
Thanks @daquintero ! There are also some related issues tagged "daq" in the front end that I was planning to consolidate into here at some point. So if you are already working on it, might want to check those out too. I think we can wait for your first day (Wednesday?) as then you get onboarding and will get a flexcompute email address to use. |
Yeah, I was checking them out to be more familiar when starting! Sounds good, we'll chat then |
So I've been thoroughly looking at a way that solves many of the issues in a single shot, and a strategy to propose. Mainly to get up to speed to contribute well when I start. In summary, based on the analysis of this "brainstorming notes" discussion #1220 (please you don't need to read it all, it's more like a scratch paper to me):
This might be an integrated solution for improving an easier local build in #1148 , having mantainable and distributable multi-platform environment and package distributed via mamba, and performs an upgrade of the current setup.py scripts too re #1068 . Maybe we'll chat more when I start, for now, I am just getting to speed so won't implement this until we chat on Wednesday. |
Just saw your message on the discussions and thanks for catching me up to speed, much appreciated! Really interesting chat and thinking about it |
No problem, great to be having these discussions. I think it would be useful for you to continue taking a fresh perspective on this to come up with an approach to organizing things that makes sense and simplifies our development process. The only real "constraints" are:
and in general I think the main "nice to have"s from my perspective (in addition to the minor things scattered around in the issues): |
@tylerflex These days, I have read the code on sources. I found there were no documentation about the source_time. I make some try on these part. Here are the markdown file and source code on these part. |
Just writing down the changes in progress:
The good news is that I've been testing the new |
Thanks for contributing the explanation on the various types of source time. A few notes:
The GaussianPulse is present in the documentation. We just recently added the other two officially to the API in this commit, but it hasn't been released yet, so those will come out next release. Note we also have an issue open #1243 for adding the equations into the documentation, which will help out. I think your explanation and the plots are useful, I'm just not really sure how to include them right now. Maybe we could put a section in the FAQ explaining what kind of source times are available and use your plots? I don't think the python notebook is extensive enough to warrant its own separate example yet. @tomflexcompute do you have any thoughts on this? |
That's great. Yea we've been stuck with an older versions because nobody could figure out a way out of the dependency hell. Glad to hear that the new setup could be helping a lot in this regard! |
Thanks. A separate example would probably be too basic. FAQ entry sounds good. I think eventually it would be nice to have capabilities in the API references to show schematic pictures. Currently we show equations in a few places but they can be added to more. |
I must say I've only just come to appreciate how much of a dependency hell it actually is! Cracking on with a good strategy I think - a lot of the issues I think are related to reproducible environment toolset upgrades |
Maybe you could try making a pull request into tidy3d-docs adding a short discussion on the types of source time? Basically this will involve an edit of this file https://github.com/flexcompute-readthedocs/tidy3d-docs/blob/develop/docs/source/faq.rst You can see in the file some examples of how we do links and images in |
OK~ I wil make some try on this part~ |
Unsure if I am running into a new issue here, but I am finding that if I have more than a few notebooks open my Pycharm IDE really struggles with the cache and crashes (and I would say it's a top end computer). Maybe users are running into this and we wouldn't know, but maybe my case is an edge case. This relates to what @lucas-flexcompute mentioned in this dicusssion:
I am debating how to approach this personally. It might be valuable to implement something on the lines of this idea, as some of these files are large. But maybe there's no workaround at wanting to save run history and they have to be large. Am just thinking how it fits in the current flow, and in any case we can do so later on after the first merge. UPDATE: I think this issue is primarily for VM based IDEs. vscode was fine when using it. Worth seeing how it reproduces on a standard jupyter environment |
Important Final Decisions before First Merge The Github actions as they were configured before will not work exactly due to the new files and repository structure. This could affect the syncing to MagicCloud temporarily whilst we upgrade them. It should not erase what existed there before, and any other branches. This means we need to make a decision how to accomodate for this, and update the scripts accordingly (which won't work first time) Summary of changes:
Currently the demonstrated demo implemented flow goes as follows:
Reason why this is an issue:
Worse case scenario:
Accomodations we could consider if we wanted:
|
So there's a minor issue I've been trying to solve, and just putting feelers out there because the solution might involve code restructuring, or just leaving it as is: See the new Simulation class and scroll to the bottom. You might notice that the properties, attributes and methods for the generated classes are a bit all over the place as you scroll down. This is because sphinx generates the documentation in the order in which the code is written PEP 520 . The solution might involve restructuring the classes so that things appear in order in the documentation, which is something maybe there is could be some hesitancy in introducing unknown bugs. Other people have evaluated this problem and it's mention it's very difficult to change from a pure sphinx side. Info in related issues: software-mansion/starknet.py#716 and sphinx-doc/sphinx#5270 |
I dont foresee see too much of a problem with this, I'd say it's ok to reshuffle the methods. The only thing we need to be aware of is that I think the order is important for pydantic validators. For example, if validator A modifies the value somehow, then it goes to validator B. If we reverse the order, there could be effects there. But I think the methods and properties can be moved around or regrouped as needed. |
Just updated base into 2.5 and writing up here a list of changes:
Updates:
|
Leaving a trace on the poetry jax situation:
Unclear to me when I tested pyproject.toml upgrade before all tests passed but now running into this. Update: I've done some digging when I tested the Potential solution for the PEP503 packaging situation here. There is a repository for all PEP503 compatible builds. Bad news is that we need to increase requirements for poetry to recognise them. I guess one of the things that poetry throws are the caveats that you don't find via pip. For example in the source APIs which has the 503 compliant builds, there is no linux cpu for for our specified 0.3.14 minimum version which supports py311, and I am wondering why it is resolving for the lowest version only (maybe because the requirements are restrictive and "verified").
Python 11 support for CPU installation began in 0.4.1 so going to move onto that as minimum requirement? Also there's the windows situation that PEP503 compatible builds are only found after 0.4.13 and must be for Python 3.9 onwards @tylerflex Maybe there is a requirement to increase the minimum python version here unfortunately? What do you think?
I'm afraid we need to make a decision, but at least this implementation seems to work and is reproducible. |
So we just need to take the decision above pending rebase.There are many things to fix still but generally can be rebased imo so we can begin merging and updating the simulation flow including the docs live update. |
I'll look in more detail soon but regarding 3.8 support: Is there a way perhaps to support >= 3.8 generally but only >= 3.9 for the adjoint plugin (jax dependency group) and windows users? Eg if a windows user tries to pip install tidy3d[jax] with python < 3.9 we provide a useful error message? |
I think we can do that, the problem will be that the Are you also able to help me when you can with configuring the rebase properly? I think I accidentally merged due to the automatic git config, rather than actually rebase. Going to backup in a new branch but unsure how to best approach this, or start from a new branch instead and merge again all the changes? Not inclined to keep adding new features until I'm properly set up to the flow. |
what's the status with this issue? still in progress? |
Yeah so I'm editing the tasks at the top to consolidate the missing things |
Closing this in favour of the post migration #1568 |
Some things we could do to make this better:
Landing page
Aesthetics
API Documentation Improvements
From @e-g-melo As an user of documentation, I think that it would help a lot if
Sort out the material library toctree situationTODO autosummary generate restructure in this case re fundamental hierarchytidy3d-docs
just in case which might get overwrittenFunctionality
New Structure
tidy3d
scriptstidy3d-notebooks
. Update already one exists, bring it back to life?Pre-Integration Checklist
Implementation Tasks
conf.py
poetry
Remove old unnecessary dependenciesI feel this should be done by someone deeply involved in the project.tidy3d cli
tidy3d cli
tidy3d cli
Do we like this live code binder integration of our current theme. I'm kind of keendraw_package
andgenerate_doc
indocs
?Notebook repo:
.ipynb
notebooks conflicts automaticallyImplementation Plan
tidy3d-docs
intotidy3d-notebooks
.tidy3d
submodule links to this develop branch.develop
branch oftidy3d-notebooks
accordingly the day we decide we won't usetidy3d-docs
anymore.sync-readthedocs-repo
action on thetidy3d
develop branch. This will overwrite thedevelop
branch so that it is mirroring the newtidy3d
structure.repo_merge_no_history
branch of thetidy3d
repo into thedevelop
branch.Post First Implementation Plan
Final deployment tasks:
The text was updated successfully, but these errors were encountered: