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

EuroPython prep #5250

Closed
wants to merge 3 commits into from
Closed

EuroPython prep #5250

wants to merge 3 commits into from

Conversation

MarcSkovMadsen
Copy link
Collaborator

@MarcSkovMadsen MarcSkovMadsen commented Jul 13, 2023

I would like to be able to get a development quickly in front of the participants.

Today I cannot do that due to many issues

  • The developer guide always fails for me. The installation takes hours and trials and errors - Especially on Windows
  • There is no docs contributor guide. I simply don't know how to get an efficient workflow up and running with a quick flow between applying a change and viewing the effect.

I don't know how I can succeed with this task. My first attempt would be to define a Dockerfile that works with github spaces. In that way everyone could have a working developer environment up and running within minutes and without issues.

Dependencies

@MarcSkovMadsen
Copy link
Collaborator Author

MarcSkovMadsen commented Jul 13, 2023

SOLVED: by adding a openssl.cnf file.


I would like to know how to get a docs developer environement up and running. You have said I can just look at the docs task. But it fails for me when I run nbsite build --what=html --output=builtdocs --org holoviz --project-name panel.

Do you understand why it fails? Am I missing some environment variable that gives access to assets.holoviz.org?

 nbsite build --what=html --output=builtdocs --org holoviz --project-name panel
Running Sphinx v5.3.0
making output directory... done
myst v0.18.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions=['colon_fence', 'deflist'], disable_syntax=[], all_links_external=Fal
'mailto', 'ftp'), ref_domains=None, highlight_code_blocks=True, number_code_blocks=[], title_to_header=False, heading_anchors=None, heading_slug_func=None,er_minute=200, sub_delimiters=('{', '}'), linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_ mathjax_classes='tex2jax_process|mathjax_process|math|output_area')
myst-nb v0.17.2: NbParserConfig(custom_formats={}, metadata_key='mystnb', cell_metadata_key='mystnb', kernel_rgx_aliases={}, execution_mode='auto', executiepatterns=(), execution_timeout=30, execution_in_temp=False, execution_allow_errors=False, execution_raise_on_error=False, execution_show_tb=False, merge_slt', remove_code_source=False, remove_code_outputs=False, code_prompt_show='Show code cell {type}', code_prompt_hide='Hide code cell {type}', number_source, render_text_lexer='myst-ansi', render_error_lexer='ipythontb', render_image_options={}, render_figure_options={}, render_markdown_format='commonmark', ouue, metadata_to_fm=False)
Using jupyter-cache at: /repos/panel/.jupyter_cache
generating gallery...


Generating 32 Panes Component Gallery examples
__________________________________________________

Extension error (nbsite.gallery.gen):
Handler <function generate_gallery_rst at 0x7f5ff8121550> for event 'builder-inited' threw an exception (exception: HTTPSConnectionPool(host='assets.holovieeded with url: /panel/thumbnails/reference/panes/Alert.png (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy rene)))
Traceback (most recent call last):
  File "/usr/local/bin/nbsite", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/nbsite/__main__.py", line 63, in main
    return args.func(args) if hasattr(args,'func') else parser.error("must supply command to run")
  File "/usr/local/lib/python3.9/site-packages/nbsite/__main__.py", line 18, in <lambda>
    parser.set_defaults(func=lambda args: fn( **{k: getattr(args,k) for k in vars(args) if k!='func'} ))
  File "/usr/local/lib/python3.9/site-packages/nbsite/cmd.py", line 92, in build
ource_lines=False, output_stderr='show', render_text_lexer='myst-ansi', render_error_lexer='ipythontb', render_image_options={}, render_figure_options={}, 
render_markdown_format='commonmark', output_folder='build', append_css=True, metadata_to_fm=False)
Using jupyter-cache at: /repos/panel/.jupyter_cache
generating gallery...


Generating 32 Panes Component Gallery examples
__________________________________________________

Extension error (nbsite.gallery.gen):
Handler <function generate_gallery_rst at 0x7ff1c9926c10> for event 'builder-inited' threw an exception (exception: HTTPSConnectionPool(host='assets.holoviz.org', port=443): Max retries exceeded with url: /panel/thumbnails/reference/panes/Alert.png (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1129)'))))

Reproduce

docker build . the below Dockerfile

FROM python:3.9.17-bookworm

ARG CS_VERSION="4.5.1"

# Install and support code server (VS Code)
RUN curl -fOL https://github.com/cdr/code-server/releases/download/v${CS_VERSION}/code-server_${CS_VERSION}_amd64.deb
RUN dpkg -i code-server_${CS_VERSION}_amd64.deb
RUN rm code-server_${CS_VERSION}_amd64.deb

WORKDIR /repos
RUN git clone https://github.com/holoviz/panel.git
WORKDIR /repos/panel
RUN pip install -e .[tests,recommmended,doc]
RUN pip install jupyterlab jupyter-server-proxy jupyter-vscode-proxy jedi-language-server

# Docs
RUN bokeh sampledata
RUN python ./doc/generate_modules.py panel -d ./doc/api -n panel -e tests
RUN python scripts/gallery/convert_gallery.py
RUN nbsite build --what=html --output=builtdocs --org holoviz --project-name panel

@ahuang11
Copy link
Contributor

I also have trouble setting up the entire dev env.

I heard that following the GitHub workflows might be the best option right now:
https://github.com/holoviz/panel/blob/main/.github/workflows/test.yaml
https://github.com/holoviz/panel/blob/main/.github/workflows/docs.yaml

@hoxbro
Copy link
Member

hoxbro commented Jul 14, 2023

I'm -1 in adding this to the panel repo. The docker files will, without a doubt, get out of sync and be an extra maintenance burden.

Not to say that the developer tooling and guides cannot be improved immensely. This in my opinion is not the right way.

@maximlt
Copy link
Member

maximlt commented Jul 14, 2023

I'm going to work on #4541 today and see how far I can go. Building the docs is always going to take a while though, at least the first time, there's a lot of Python code running there.

@MarcSkovMadsen
Copy link
Collaborator Author

I'm -1 in adding this to the panel repo. The docker files will, without a doubt, get out of sync and be an extra maintenance burden.

Not to say that the developer tooling and guides cannot be improved immensely. This in my opinion is not the right way.

Hi @hoxbro

I understand your worry about the Dockerfile getting out of sync. But I believe we need some way to 1) ensure our developer instructions are working 2) an easy way to get a working environment. Currently we have none of that and its a big blocker. A written developer guide alone is not enough. You need a docker image where we can show users the instructions are actually working - And even better - test it via CI/ CD automation.

@MarcSkovMadsen
Copy link
Collaborator Author

MarcSkovMadsen commented Jul 14, 2023

I'm going to work on #4541 today and see how far I can go. Building the docs is always going to take a while though, at least the first time, there's a lot of Python code running there.

Thanks. I can only see it will always take a long time. Please if any one has a way that can be described to users where they can get an efficient workflow describe it. The current situation is highly frustrating. Its not fun - it stressful - to contribute to something you cannot get working and where you cannot efficiently review what you are contributing.

@MarcSkovMadsen MarcSkovMadsen mentioned this pull request Jul 14, 2023
@philippjfr
Copy link
Member

If we still want this to go in let's make a new PR.

@philippjfr philippjfr closed this Oct 11, 2023
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.

5 participants