"Running the Code" - for the ultra newbie

It wasn't obvious to me how to get anything working but I think I've figured it out. Here is my helloworld.sh quick start:
cd paip-lisp.git/lisp/

cat <<EOF > ./run.lisp

(declaim (sb-ext:muffle-conditions cl:style-warning))
(load "auxfns")
(load "examples")
(do-examples 1)

EOF

sbcl --non-interactive --load run.lisp

Do you think it warrants adding in the following section, or maybe enabling the Wiki for this repo? I'd be happy to add it to the wiki.
https://github.com/norvig/paip-lisp/tree/main?tab=readme-ov-file#running-the-code

Expected output
This is SBCL 2.4.8, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
STYLE-WARNING: using deprecated EVAL-WHEN situation names LOAD COMPILE EVAL
STYLE-WARNING: using deprecated EVAL-WHEN situation names COMPILE EVAL LOAD

Chapter  1. Introduction to Lisp
This chapter is for people with little or no experince in Lisp.
Intermediate or advanced readers can skim or skip this chapter.

Lisp expressions are in prefix notation: the operator first.
; page 4
> (+ 2 2)
4
; page 5
> (+ 1 2 3 4 5 6 7 8 9 10)
55
This is Lisp for (900 + 900 + 90 + 9) - (5000 + 500 + 50 + 5)
> (- (+ 9000 900 90 9) (+ 5000 500 50 5))
4444

Section 1.1 Symbolic Computation
This is an example of computation on lists:
; page 6
> (append '(pat kim) '(robin sandy))
(PAT KIM ROBIN SANDY)
The quote mark instructs Lisp to treat the list as data.
> '(pat kim)
(PAT KIM)
Let's look at some more list processing functions

Section 1.4 Lists
; page 10
> (setf p '(john q public))
; in: SETF P
;     (SETF P '(JOHN Q PUBLIC))
;
; caught WARNING:
;   undefined variable: COMMON-LISP-USER::P
;
; compilation unit finished
;   Undefined variable:
;     P
;   caught 1 WARNING condition
(JOHN Q PUBLIC)
> (first p)
JOHN
> (rest p)
(Q PUBLIC)
> (second p)
Q
> (third p)
PUBLIC
> (fourth p)
NIL
> (length p)
3
It is also possible to build up new lists
; page 11
> p
(JOHN Q PUBLIC)
> (cons 'mr p)
(MR JOHN Q PUBLIC)
> (cons (first p) (rest p))
(JOHN Q PUBLIC)
> (setf town (list 'anytown 'usa))
; in: SETF TOWN
;     (SETF TOWN (LIST 'ANYTOWN 'USA))
;
; caught WARNING:
;   undefined variable: COMMON-LISP-USER::TOWN
;
; compilation unit finished
;   Undefined variable:
;     TOWN
;   caught 1 WARNING condition
(ANYTOWN USA)
> (list p 'of town 'may 'have 'already 'won!)
((JOHN Q PUBLIC) OF (ANYTOWN USA) MAY HAVE ALREADY WON!)
> (append p '(of) town '(may have already won))
(JOHN Q PUBLIC OF ANYTOWN USA MAY HAVE ALREADY WON)
> p
(JOHN Q PUBLIC)

Section 1.5 Defining New Functions
The special form DEFUN stands for 'define function.'
It is used here to define a new function called last-name:
> (requires "intro")

; file: /Volumes/trash/trash/paip-lisp/lisp/intro.lisp
; in: SETF NAMES
;     (SETF NAMES
;             '((JOHN Q PUBLIC) (MALCOLM X) (ADMIRAL GRACE MURRAY HOPPER) (SPOT)
;               (ARISTOTLE) (A A MILNE) (Z Z TOP) (SIR LARRY OLIVIER)
;               (MISS SCARLET)))
;
; caught WARNING:
;   undefined variable: COMMON-LISP-USER::NAMES
;
; compilation unit finished
;   Undefined variable:
;     NAMES
;   caught 1 WARNING condition
(T)
; page 13
> (last-name p)
PUBLIC
> (last-name '(rex morgan md))
MD
> (last-name '(spot))
SPOT
> (last-name '(aristotle))
ARISTOTLE
We can also define the function first-name.
Even though the definition is trivial (it is the same as FIRST),
it is good practice to define first-name explicitly.
> p
(JOHN Q PUBLIC)
> (first-name p)
JOHN
> (first-name '(wilma flintstone))
WILMA
; page 14
> (setf names
          '((john q public) (malcolm x) (admiral grace murray hopper) (spot)
            (aristotle) (a a milne) (z z top) (sir larry olivier)
            (miss scarlet)))
; in: SETF NAMES
;     (SETF NAMES
;             '((JOHN Q PUBLIC) (MALCOLM X) (ADMIRAL GRACE MURRAY HOPPER) (SPOT)
;               (ARISTOTLE) (A A MILNE) (Z Z TOP) (SIR LARRY OLIVIER)
;               (MISS SCARLET)))
;
; caught WARNING:
;   undefined variable: COMMON-LISP-USER::NAMES
;
; compilation unit finished
;   Undefined variable:
;     NAMES
;   caught 1 WARNING condition
((JOHN Q PUBLIC) (MALCOLM X) (ADMIRAL GRACE MURRAY HOPPER) (SPOT) (ARISTOTLE)
 (A A MILNE) (Z Z TOP) (SIR LARRY OLIVIER) (MISS SCARLET))
> (first-name (first names))
JOHN

Section 1.6 Using Functions
Consider the following expression, which can be used to test LAST-NAME:
> (mapcar #'last-name names)
(PUBLIC X HOPPER SPOT ARISTOTLE MILNE TOP OLIVIER SCARLET)
The #' notation maps the name of a function to the function itself.
; page 15
> (mapcar #'- '(1 2 3 4))
(-1 -2 -3 -4)
> (mapcar #'+ '(1 2 3 4) '(10 20 30 40))
(11 22 33 44)
Now that we understand mapcar, let's use it to test FIRST-NAME:
> (mapcar #'first-name names)
(JOHN MALCOLM GRACE SPOT ARISTOTLE A Z LARRY SCARLET)
Suppose we wanted a version of FIRST-NAME that ignored titles like Miss:
> (defparameter *titles*
    '(mr mrs miss ms sir madam dr admiral major general)
    "A list of titles that can appear at the start of a name.")
*TITLES*
; page 16
> (defun first-name (name)
    "Select the first name from a name represented as a list."
    (if (member (first name) *titles*)
        (first-name (rest name))
        (first name)))
FIRST-NAME
> (mapcar #'first-name names)
(JOHN MALCOLM GRACE SPOT ARISTOTLE A Z LARRY SCARLET)
> (first-name '(madam major general paula jones))
PAULA
We can see how this works by tracing the execution of first-name:
> (trace first-name)
(FIRST-NAME)
; page 17
> (first-name '(john q public))
  0: (FIRST-NAME (JOHN Q PUBLIC))
  0: FIRST-NAME returned JOHN
JOHN
> (first-name '(madam major general paula jones))
  0: (FIRST-NAME (MADAM MAJOR GENERAL PAULA JONES))
    1: (FIRST-NAME (MAJOR GENERAL PAULA JONES))
      2: (FIRST-NAME (GENERAL PAULA JONES))
        3: (FIRST-NAME (PAULA JONES))
        3: FIRST-NAME returned PAULA
      2: FIRST-NAME returned PAULA
    1: FIRST-NAME returned PAULA
  0: FIRST-NAME returned PAULA
PAULA
> (untrace first-name)
T

Section 1.7 Higher-Order Functions
> (apply #'+ '(1 2 3 4))
10
> (apply #'append '((1 2 3) (a b c)))
(1 2 3 A B C)
Now we define a new function, self-and-double, and apply it to arguments.
> (defun self-and-double (x) (list x (+ x x)))
SELF-AND-DOUBLE
> (self-and-double 3)
(3 6)
> (apply #'self-and-double '(3))
(3 6)
Now let's return to the mapping functions:
> (mapcar #'self-and-double '(1 10 300))
((1 2) (10 20) (300 600))
> (mappend #'self-and-double '(1 10 300))
(1 2 10 20 300 600)
FUNCALL is similar to APPLY; it too takes a function as its
first argument and applies the function to a list of arguments,
but in the case of FUNCALL, the arguments are listed separately:
; page 20
> (funcall #'+ 2 3)
5
> (apply #'+ '(2 3))
5

Chapter  1. Introduction to Lisp done.


quartus-prime-lite: add a test

Description of changes
Test that the wrapped quartus can build a SOF file.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Rebased to fix conflict since https://github.com/NixOS/nixpkgs/pull/277610.


docs: remove ascii namespace from text

When going through the tutorial, I noticed that the docs were somewhat outdated.
Updated imports related to text to ensure they compile

Thanks. FWIW the tutorial does need rewriting entirely for 1.0, but in the meantime this is a welcome addition.

Hmm, I think that this is a regression. The 1.0 release (which main is on) adds the ascii module. You're likely using the 0.9 release, which does not have this module.

@zesterer My bad! That's OK 😊


feat: initial html text (ref #116)

Please check if the PR fulfills these requirements

[x] It's the right issue type on the title
[x] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)
[x] It does not introduce a breaking change or has a description of the breaking change

Description
Get html text from the target element, and set the html text as initial value of the editor.

Thank you for your contribution to TOAST UI product. 🎉 😘 ✨

@ParkSB Thanks for the contribution 🎉
I'll review this soon.

@ParkSB

simply calling setHTML in constructor will do the job.
should not override options.initialValue.

and some issue

what to do with existing inner HTML content after we set it as the initial HTML

I think we should clear the HTML content as It will affect editor DOM.

@ParkSB Thanks for the update.

@ParkSB sorry for the delay.
I'm having some time to consider the effects.
I may change some code by myself.
but no worry. I'll take this PR.


Add 'side' when processing flip90

Add 'side' when processing flip90 so there is a single common attribute to check which face is up.
Fixes #641

Thanks! Closes #641


MudForm validation of initial values

Describe the bug
When filling a MudForm with valid values, the initial validation doesn't seem to work.
Expected behavior
A MudForm loaded with correct values should be valid.
TryMudBlazor
I have modified the MudForm example to have valid initial values, but the Register button starts as disabled.
Clicking the "VALIDATE" button makes the Register button enabled, so the form values seems to be correct.
https://try.mudblazor.com/snippet/mkcbujPxxxNfGgVQ
I attempted to call form.Validate() from OnInitializedAsync, but that doesn't seem to work.

Not use OnInitializedAsync, because component didn't ready at that time. Use OnAfterRenderAsync instead.
https://try.mudblazor.com/snippet/QOmPajFxpmrZBpTW

@mckaragoz The issue is still the same when using OnAfterRenderAsync in the component.
For me it seems like its caused by MudForm's OnAfterRenderAsync-part:
protected override Task OnAfterRenderAsync(bool firstRender)
{
    if (firstRender)
    {
        var valid = _formControls.All(x => x.Required == false);
        if (valid != IsValid)
        {
            // the user probably bound a variable to IsValid and it conflicts with our state.
            // let's set this right
            SetIsValid(valid);
        }
    }
    return base.OnAfterRenderAsync(firstRender);
}

var valid = _formControls.All(x => x.Required == false); will always be false for your form, as except for one control, all others do have the Required parameter set to true. Not sure what is the point behind this part as of each form containing at least one Required control will be marked as invalid after the form's OnAfterRenderAsync has been called for firstRender.

@mckaragoz and @kuebelkasten thanks for the feedback... I'm not really sure what to make of it, because the logic in OnAfterRenderAsync could be there for a reason and I'm not sure what the correct logic should be. For now I will find some kind of workaround.

I have found a workaround by placing Task.Yield() before form.Validate(), as shown here:
https://try.mudblazor.com/snippet/GuGPEDFJoNBKfqyL
@mckaragoz : should the triage tag be put back on this issue?

I have found a workaround by placing Task.Yield() before form.Validate(), as shown here: https://try.mudblazor.com/snippet/GuGPEDFJoNBKfqyL
@mckaragoz : should the triage tag be put back on this issue?

This workaround did not work for me in my project with more fields. When debugging i see that .Validate() is called and breakpoint is hit inside my IsValidChanged handler with value true but when continue execution something straight away sets the IsValid to false and breakpoint is hit again inside the IsValidChanged handler but now with value false again.
It worked for me when i added Task.Delay between the Task.Yield and .Validate() calls what tells me its a timing issue. Makes me wonder if the Task.Yield does anything there at all.


io: read/write on closed pipe in all connections.

Please read the instruction and answer the following questions before submitting your issue. Thank you.
Please answer all the questions with enough information. All issues not following this template will be closed immediately.
If you are not sure if your question is truely a bug in V2Ray, please discuss it here first.

What version of V2Ray are you using (If you deploy different version on server and client, please explicitly point out)?

V2Ray 4.3 (Po) 20181109

What's your scenario of using V2Ray? E.g., Watching YouTube videos in Chrome via Socks/VMess proxy.

Using Chromium to browse generic web content.

What did you see? (Please describe in detail, such as timeout, fake TLS certificate etc)

Testing connection to example.org.
When using SOCKS5, I got ERR_EMPTY_RESPONSE.
When using HTTP, I got HTTP ERROR 503.

What's your expectation?

The browser should display an "Example Domain" webpage without any error.

Please attach your configuration file (Mask IP addresses before submit this issue).

Server configuration:
Not appliable. I used a service provider.
The same configuration works with v2rayNG on Android.

Client configuration:
{
  "log": {
    "loglevel": "info",
    "access": "./access.log",
    "error": "./error.log"
  },

  "inbound": {
    "port": 1080,
    "listen": "<IP_ADDRESS>",
    "protocol": "socks",
    "settings": {
      "auth": "noauth"
    },
    "sniffing": {
      "enabled": true,
      "destOverride": ["http", "tls"]
    }
  },

  "inboundDetour": [
    {
      "port": 8080,
      "listen": "<IP_ADDRESS>",
      "protocol": "http",
      "settings": {
        "auth": "noauth"
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      }
    }

  ],

  "outbound": {
    "tag": "proxy-vmess",
    "protocol": "vmess",
    "settings": {
      "vnext": [
        {
          "address": [REDACTED],
          "port": [REDACTED],
          "security": "chacha20-poly1305",
          "network": "ws",
          "users": [
            {
              "id": [REDACTED],
              "alterId": [REDACTED]
            }
          ]
        }
      ]
    }
  },

  "outboundDetour": [
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct"
    },

    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "block"
    }
  ],

  "dns": {
    "hosts": {
    },
    "servers": [
        "<IP_ADDRESS>",
        "<IP_ADDRESS>"
    ]
  }
}

Please attach error logs, especially the bottom lines if the file is large. Error log file is usually at /var/log/v2ray/error.log on Linux.

Server error log:
Not appliable, for reason stated above.

Client error log:
Using SOCKS5 on port 1080:
2018/11/13 15:39:32 [Warning] v2ray.com/core: V2Ray 4.3 started
2018/11/13 15:39:38 [Info] [3611628738] v2ray.com/core/proxy/socks: TCP Connect request to tcp:example.org:80
2018/11/13 15:39:38 [Info] [3611628738] v2ray.com/core/app/dispatcher: sniffed domain: example.org
2018/11/13 15:39:38 [Info] [3611628738] v2ray.com/core/app/dispatcher: default route for tcp:example.org:80
2018/11/13 15:39:38 [Info] [3611628738] v2ray.com/core/transport/internet/tcp: dialing TCP to tcp:[REDACTED]:[REDACTED]
2018/11/13 15:39:43 [Info] [3611628738] v2ray.com/core/proxy/vmess/outbound: tunneling request to tcp:example.org:80 via tcp:[REDACTED]:[REDACTED]
2018/11/13 15:39:43 [Info] [3611628738] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: connection ends > v2ray.com/core/proxy/vmess/outbound: failed to read header > v2ray.com/core/proxy/vmess/encoding: unexpected response header. Expecting 12 but actually 252
2018/11/13 15:39:43 [Info] [3611628738] v2ray.com/core/app/proxyman/inbound: connection ends > v2ray.com/core/proxy/socks: connection ends > v2ray.com/core/proxy/socks: failed to transport all TCP response > io: read/write on closed pipe
2018/11/13 15:39:43 [Info] [1931519506] v2ray.com/core/proxy/socks: TCP Connect request to tcp:example.org:80
2018/11/13 15:39:43 [Info] [1931519506] v2ray.com/core/app/dispatcher: sniffed domain: example.org
2018/11/13 15:39:43 [Info] [1931519506] v2ray.com/core/app/dispatcher: default route for tcp:example.org:80
2018/11/13 15:39:43 [Info] [1931519506] v2ray.com/core/transport/internet/tcp: dialing TCP to tcp:[REDACTED]:[REDACTED]
2018/11/13 15:39:48 [Info] [1931519506] v2ray.com/core/proxy/vmess/outbound: tunneling request to tcp:example.org:80 via tcp:[REDACTED]:[REDACTED]
2018/11/13 15:39:49 [Info] [1931519506] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: connection ends > v2ray.com/core/proxy/vmess/outbound: failed to read header > v2ray.com/core/proxy/vmess/encoding: unexpected response header. Expecting 180 but actually 189
2018/11/13 15:39:49 [Info] [1931519506] v2ray.com/core/app/proxyman/inbound: connection ends > v2ray.com/core/proxy/socks: connection ends > v2ray.com/core/proxy/socks: failed to transport all TCP response > io: read/write on closed pipe

Using HTTP on port 8080:
2018/11/13 15:47:13 [Warning] v2ray.com/core: V2Ray 4.3 started
2018/11/13 15:47:16 [Info] [3954427793] v2ray.com/core/proxy/http: request to Method [GET] Host [example.org] with URL [http://example.org/]
2018/11/13 15:47:16 [Info] [3954427793] v2ray.com/core/app/dispatcher: sniffed domain: example.org
2018/11/13 15:47:16 [Info] [3954427793] v2ray.com/core/app/dispatcher: default route for tcp:example.org:80
2018/11/13 15:47:16 [Info] [3954427793] v2ray.com/core/transport/internet/tcp: dialing TCP to tcp:[REDACTED]:[REDACTED]
2018/11/13 15:47:21 [Info] [3954427793] v2ray.com/core/proxy/vmess/outbound: tunneling request to tcp:example.org:80 via tcp:[REDACTED]:[REDACTED]
2018/11/13 15:47:21 [Info] [3954427793] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: connection ends > v2ray.com/core/proxy/vmess/outbound: failed to read header > v2ray.com/core/proxy/vmess/encoding: unexpected response header. Expecting 127 but actually 36
2018/11/13 15:47:21 [Warning] [3954427793] v2ray.com/core/proxy/http: failed to read response from example.org > io: read/write on closed pipe
2018/11/13 15:47:21 [Info] [3954427793] v2ray.com/core/app/proxyman/inbound: connection ends > v2ray.com/core/proxy/http: failed to read http request > EOF
2018/11/13 15:47:38 [Info] [249479671] v2ray.com/core/proxy/http: request to Method [CONNECT] Host [android.clients.google.com:443] with URL [//android.clients.google.com:443]
2018/11/13 15:47:38 [Info] [249479671] v2ray.com/core/app/dispatcher: sniffed domain: android.clients.google.com
2018/11/13 15:47:38 [Info] [249479671] v2ray.com/core/app/dispatcher: default route for tcp:android.clients.google.com:443
2018/11/13 15:47:38 [Info] [249479671] v2ray.com/core/transport/internet/tcp: dialing TCP to tcp:[REDACTED]:[REDACTED]

Please attach access log. Access log is usually at '/var/log/v2ray/access.log' on Linux.

Using SOCKS5:
2018/11/13 15:39:38 tcp:<IP_ADDRESS>:53620 accepted tcp:example.org:80
2018/11/13 15:39:43 tcp:<IP_ADDRESS>:53624 accepted tcp:example.org:80

Using HTTP:
2018/11/13 15:47:16 <IP_ADDRESS>:50772 accepted http://example.org/
2018/11/13 15:47:38 <IP_ADDRESS>:50780 accepted //android.clients.google.com:443

Other configurations (such as Nginx) and logs.

No conflicting service is installed.

If V2Ray doesn't run, please attach output from --test.

Not appliable. It runs normally.

If V2Ray service doesn't run, please attach journal log.

Not appliable. I run v2ray manually using ./v2ray -config ./config.json, not as a system-wide service.
Please review your issue before submitting.

Are you trying to use WebSocket? If so, you need streamSettings. See streamSettings in v2ray.com, or example: https://github.com/KiriKira/vTemplate/blob/master/websocket/config_client.json

Thanks. Closing this.

Are you trying to use WebSocket? If so, you need streamSettings. See streamSettings in v2ray.com, or example: https://github.com/KiriKira/vTemplate/blob/master/websocket/config_client.json

Can you elaborate on this, please?


is auto_find_lr support ddp mode?

🐛 Bug

Please reproduce using the BoringModel

To Reproduce
Use following BoringModel and post here

Expected behavior

Environment
Note: Bugs with code are solved faster ! Colab Notebook should be made public !

IDE: Please, use our python bug_report_model.py template.

Colab Notebook: Please copy and paste the output from our environment collection script (or fill out the checklist below manually).

You can get the script and run it with:
wget https://raw.githubusercontent.com/PyTorchLightning/pytorch-lightning/master/tests/collect_env_details.py
# For security purposes, please check the contents of collect_env_details.py before running it.
python collect_env_details.py

PyTorch Version (e.g., 1.0):
OS (e.g., Linux):
How you installed PyTorch (conda, pip, source):
Build command you used (if compiling from source):
Python version:
CUDA/cuDNN version:
GPU models and configuration:
Any other relevant information:

Additional context

Lr finder currently does not support ddp.
I would recommend that you you call the method manually and then set the learning rate of your model to that value
trainer = Trainer()
trainer_ddp = Trainer(accelerator='ddp')
lrfinder = trainer.tuner.lr_find(...)
lr = lrfinder.suggestion()
model.lr = lr
trainer_ddp.fit(model)

Lr finder currently does not support ddp.
I would recommend that you you call the method manually and then set the learning rate of your model to that value
trainer = Trainer()
trainer_ddp = Trainer(accelerator='ddp')
lrfinder = trainer.tuner.lr_find(...)
lr = lrfinder.suggestion()
model.lr = lr
trainer_ddp.fit(model)

does auto find lr has any different for different optim such as sgd adam adamw?

no, internally its the same regardless of optimizer


[YUNIKORN-2194] docs: add /ws/v1/scheduler/node-utilization endpoint doc

What is this PR for?
Add /ws/v1/scheduler/node-utilization endpoint doc.
What type of PR is it?

[ ] - Bug Fix
[ ] - Improvement
[ ] - Feature
[x] - Documentation
[ ] - Hot Fix
[ ] - Refactoring

Todos

[ ] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-2194
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

LGTM


Add support for recurring tasks (cron style jobs)

This PR introduces support for recurring (aka. cron-style) tasks. They can be included in the dispatcher's configuration as:
  dispatchers:
    - polling_interval: 1
      batch_size: 500
      recurring_tasks:
        my_periodic_job:
          class: MyJob
          args: [ 42, { status: "custom_status" } ]
          schedule: every second

recurring_tasks is a hash/dictionary, and the key will be the task key internally. Each task needs to have a class, which will be the job class to enqueue, and a schedule. The schedule is parsed using Fugit, so it accepts anything that Fugit accepts as a cron. You can also provide arguments to be passed to the job, as a single argument, a hash, or an array of arguments that can also include kwargs as the last element in the array.
The job in the example configuration above will be enqueued every second as:
MyJob.perform_later(42, status: "custom_status")

Tasks are enqueued at their corresponding times by the dispatcher that owns them, and each task schedules the next one. This is pretty much inspired by what GoodJob does.
It's possible to run multiple dispatchers with the same recurring_tasks configuration. To avoid enqueuing duplicate tasks at the same time, an entry in a new solid_queue_recurring_executions table is created in the same transaction as the job is enqueued. This table has a unique index on task_key and run_at, ensuring only one entry per task per time will be created. This only works if you have preserve_finished_jobs set to true (the default), and the guarantee applies as long as you keep the jobs around.
Finally, it's possible to configure jobs that aren't handled by Solid Queue. That's it, you can a have a job like this in your app:
class MyResqueJob < ApplicationJob
  self.queue_adapter = :resque

  def perform(arg)
    # ..
  end
end

You can still configure this in Solid Queue:
  dispatchers:
    - recurring_tasks:
        my_periodic_resque_job:
          class: MyResqueJob
          args: 22
          schedule: "*/5 * * * *"

and the job will be enqueued via perform_later so it'll run in Resque. However, in this case we won't track any solid_queue_recurring_execution record for it and there won't be any guarantees that the job is enqueued only once each time.
This pull request also introduces a new configuration option for the dispatcher, to opt-out of concurrency maintenance, via concurrency_maintenance: false (it's true by default). You can have multiple dispatchers and choose that some of them do concurrency maintenance but not all of them, as well as one/some of them being in charge of dispatching recurring tasks but not all of them.
Closes #104.
Pending:

[ ] Update README with this new feature.

I'm testing this branch with a frequent cart expiry job that runs every minute. My concern is the amount of noise generated in the jobs table. What are your thoughts on either having the option to add a condition to the task definition such as:
recurring_tasks:
  expire_carts_job:
    class: ExpireCartsJob
    schedule: every minute
    if: -> { Cart.candidates_for_expiry.any? }

or a task specific version of the clear_finished_jobs_after setting for automatic cleanup

@klenis, this would depend on your job volume, but a job every minute would be 1,440 jobs per day and 10,080 jobs after one week. How would this compare to your current job volume?
As a comparison, in HEY, the noise corresponding to recurring jobs is about ~2,000 per day, but that's negligible compared to regular jobs (over 10M / day). I think this might be the case for most users because the lowest time interval you can schedule jobs to run recurringly is 1 second.
In case it helps, this is what we use on HEY to delete jobs that finished over 3 days ago:
# config/application.rb

# Keep finished Solid Queue jobs for 3 days
config.solid_queue.clear_finished_jobs_after = 3.days

And then as part of our recurring tasks:
clear_solid_queue_finished_jobs:
  class: "CronJob"
  schedule: "42 * * * *"
  args: "SolidQueue::Job.clear_finished_in_batches(batch_size: 1000)"

Would something like this work for you?

I guess the scheduled cleaner could be a viable solution. It would be nice to be able to pass class_name: to clear_finished_in_batches to simplify custom cleaning logic but I understand if you want minimise the public interface.
Thank you for taking the time to respond and great job with Solid Queue 👏

It would be nice to be able to pass class_name: to clear_finished_in_batches to simplify custom cleaning logic

Ohh, interesting idea! I hadn't thought about that as we didn't need that granularity when clearing jobs, but it's something I can certainly add 😊 Thank you!

@klenis, this would depend on your job volume, but a job every minute would be 1,440 jobs per day and 10,080 jobs after one week. How would this compare to your current job volume?
As a comparison, in HEY, the noise corresponding to recurring jobs is about ~2,000 per day, but that's negligible compared to regular jobs (over 10M / day). I think this might be the case for most users because the lowest time interval you can schedule jobs to run recurringly is 1 second.
In case it helps, this is what we use on HEY to delete jobs that finished over 3 days ago:

# config/application.rb

# Keep finished Solid Queue jobs for 3 days

config.solid_queue.clear_finished_jobs_after = 3.days

And then as part of our recurring tasks:

clear_solid_queue_finished_jobs:

  class: "CronJob"

  schedule: "42 * * * *"

  args: "SolidQueue::Job.clear_finished_in_batches(batch_size: 1000)"

Would something like this work for you?

Hey @rosa 👋
Does BC run SolidQueue on a dedicated db?

Does BC run SolidQueue on a dedicated db?

Yes! We use it for HEY only (for now), and it has its own DB that shares the hardware with the app's main DB.

Yes! We use it for HEY only (for now), and it has its own DB that shares the hardware with the app's main DB.

Thanks @rosa!
We have similar job amounts/day--How big is your dedicated queue db?  Did y'all consider sharing your main db?

We have similar job amounts/day--How big is your dedicated queue db? Did y'all consider sharing your main db?

We did consider it, and in the beginning, when we started using Solid Queue in production, we were running it there (about ~1M jobs per day). We looked into how the write load would look like when moving all the jobs, compared it to the load from the application, and realised it'd be a little less than multiplying the existing write load by 2, leaving less margin for peaks. In the end, we decided to be cautious and moved it to its own DB, which shares the hardware with the main app's DB and other DBs, just a separate database, as we still had a lot of margin in terms of IOPS supported by our disks there, CPU and memory.

Does BC run SolidQueue on a dedicated db?

Yes! We use it for HEY only (for now), and it has its own DB that shares the hardware with the app's main DB.

Am I missing something in the solid_queue readme? Not quite sure how you'd set solid_queue up to use a separate database to the one that stores rails model data.

Hi everyone, I was just testing out adding Solid Queue to my rails app, but I can't seem to get the recurring tasks to work.
I see some references to a solid_queue_recurring_executions table, but I don't see that in the migration or my Postgres db. Maybe I'm missing something?
I added the gem, installed and opted for directly setting config.active_job.queue_adapter = :solid_queue in my application.rb
The solid_queue.yml file contains the below:
default: &default
dispatchers:
- polling_interval: 1
batch_size: 500
recurring_tasks:
my_frequent_job:
class: MyFrequentJob
schedule: every minute
workers:
- queues: "*"
threads: 5
processes: 1
polling_interval: 0.1
development:
<<: *default
test:
<<: *default
production:
<<: *default
I can trigger the jobs just fine manually, it's only the scheduled approach that doesn't seem to work for me.
If anyone has some suggestions, I'd appreciate some help! Thanks a lot in advance.


Address changes from doctrine/collections 1.8.0

Collection::contains() and Collection::indexOf() use templating to infer if they are going to return false or null respectively, in case $element does not even match the type of the collection.

Thanks @greg0ire! :)


Expose whole Response struct in sockRequestRaw

sockRequestRaw and sockRequest now just differ in what they return by just one arg type ([]byte vs io.Reader).
I'd like to access more fields of an http.Response if I use sockRequestRaw, not just the StatusCode (for this there's already sockRequest). I could just need to access Header strings.
I'm against adding a new return value when we can directly expose the Response, just my thought.
I see sockRequestRaw as more low level and due to this I think make sense to expose the whole Response. Of course, who uses this must check before that err is not nil before accessing fields and as it's now, people have to close the body if using sockRequestRaw.
Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>

fixing tests

sounds like a good idea, I'm sure having the response object will be helpful in other situations too. :+1:

LGTM

Awesome, merging! :metal:


Message - cancel editing problem

During work on another "/me" ticket I found probably a bug:
Steps to reproduce (I didn't check it with other scenarios):

Create message like: /me blahblah
Click edit with the chevron and edit message without save
Click cancel.
Edit topic using "pencil" icon
Save edited topic
Be sad ;-(

Content message was else edited using edition you made in "chevron edit mode"
@timabbott Could you try to reproduce and say it is a bug or not?

Cool, thanks for the careful bug report!  I can reproduce, and it's definitely a bug.  I think the issue is basically that the topic_edit pencil functionality doesn't correctly limit what it saves to just the topic.
@TomaszKolek do you want to take a look at fixing this, since you've been working on the message editing codepath?

I think fixing this likely involves changing this section of save() in message_edit.js to check whether it was a topic edit or a normal edit...:
    if (new_content !== message.raw_content) {
        request.content = new_content;
        changed = true;
    }

@timabbott
I'll do it!


As a user, I can give them zero or more tags so that I can easily classify different groups of patients by their illness, medication and other information to serve their specific needs.

Upload wrong


filter box with an option to 'group by' the data

Hi all,
Filterbox is a great feature to filter data but there are features that can make it better.
Here is my used case:
So lets say that I have a 100 products of different colors, red = 40, blue=20, green=20, , yellow= 20.
I am using 'Table' visualization in dashboard with metric = count
Now when no filter is applied it will show me all the 500 products in the table, and I can select any color from the drop down, lets say that I selected yellow so it will show me the count of 100 for yellow.
But here is the problem I can't have a group by option in the filter box to count of products in the 'Table' for different colors. so I can never see count for all the products for different colors. One option here is to have group by filter applied on the 'table'. but it soon starts to get complicated when working with more than single group by options.
Wouldn't it be nice to have a checkbox beside the filter box drop down to specify the group by category for the data?
Here I have added the pics for giving the rough idea of my proposition,

In current implementation following steps had to be followed:
1.. add the color category to group by.
2.. select all the colors in the dashboard in the filterbox

desired implementation:
1.. have a checkbox to dyanamically group by based on the category.
2.. default state should be all.

Hey @amitmiran137 looking forward to see this feature in superset !!! :)

resolves https://github.com/apache/superset/pull/14217


Can I share this project with my developer friends?

Hi @integrativesoft, how are you?
Is there any image or trademark rights in this open source project that restrict the dissemination and promotion of this project?
I await any response to this question.

Check out the license file, this project is open source

Hi @pablocar80, how are you? thanks for comment!


Drop support for python 2.7 and old versions of sphinx

And start testing new versions

Would it be worth mentioning plans to deprecate sphinx/python support in version X of the theme? So people have time/incentive to make the switch?

Would it be worth mentioning plans to deprecate sphinx/python support in version X of the theme? So people have time/incentive to make the switch?

So, we decided to not deprecate this just now, but we are planning to have a page in rtd with the supported versions and EOL

Closing in favor of https://github.com/readthedocs/sphinx_rtd_theme/pull/1012


Update 1.19.3 dependencies

Is this necessary to continue running on 1.19.3? If not I'm gonna close the PR if that's alright. I'm currently working on a rewrite if you look at that branch, there are dev updates on the discord server as well.

Closing this as everything is under the rewrite branch


Update FAQ

Similar to
I suggest you get a CLARIN account and log in to our repository using that account. Following the steps below should make that possible:

1) register at https://user.clarin.eu/user/register
2) wait for the approval
3) go to https://lindat.mff.cuni.cz/repository/xmlui/ and click Login
4) type "clarin" into the search box of the login popup and select "clarin eu website account:
OR
in case the above is not possible for any reason, contact me and I will set up a local account for you.

partially fixed in 0716dba8586aaf786bb413528b0f928a19c00f0c


Extensions may cause vscode to wait indefinitely on startup

Issue Type: Bug
Steps to Reproduce

Use the remote ssh extension to connect over ssh
Make sure the ssh connected window is the only open instance of vscode
Exit vscode
Open vscode

Expected result
Vscode should open and be usable as ususal
Actual result
vscode opens and freezes with only the editor areas colored (no icons etc.). The editor looks as if it is starting up but is in fact frozen in this state.
The only way to leave this state is opening a local file in vscode using the explorer right-click menu.
Why this is posted here
While the SSH extension seems like the culprit

I find it odd that vscode would allow an extension to freeze the startup process in an non-interactible state.
the issue would appear to stem from a session restoration within vscode which could have lead me to a reinstall instead.

Suggested Solutions

Do not allow extensions to freeze the editor while it is still non-interactible (blank window).
Make it easy to "abandon" the last session during the start-up process
Add an accessible "safe mode" for starting vscode if an extension causes the editor to be unusable

VS Code version: Code 1.39.1 (88f15d17dca836346e787762685a40bb5cce75a8, 2019-10-10T23:31:28.683Z)
OS version: Windows_NT x64 10.0.18362
Extensions (29)

Extension
Author (truncated)
Version

markdown-mermaid
bie
1.3.0

npm-intellisense
chr
1.3.0

vscode-eslint
dba
1.9.1

EditorConfig
Edi
0.14.2

vscode-npm-script
eg2
0.3.9

matlab
Gim
1.3.0

latex-workshop
Jam
8.2.0

vscode-peacock
joh
3.1.5

markdown-math
koe
0.1.0

vscode-docker
ms-
0.8.1

python
ms-
2019.10.41019

remote-containers
ms-
0.81.0

remote-ssh
ms-
0.47.1

remote-ssh-edit
ms-
0.47.1

remote-wsl
ms-
0.39.9

vscode-remote-extensionpack
ms-
0.17.0

vsliveshare
ms-
1.0.950

vsliveshare-audio
ms-
0.1.66

vsliveshare-pack
ms-
0.3.3

debugger-for-chrome
msj
4.12.0

java
red
0.50.0

vscode-scss-formatter
sib
1.4.2

math-snippets
tho
0.1.1

vscodeintellicode
Vis
1.1.9

vscode-java-debug
vsc
0.22.0

vscode-java-dependency
vsc
0.5.1

vscode-java-pack
vsc
0.8.0

vscode-java-test
vsc
0.20.0

vscode-maven
vsc
0.19.1

Can you share a screenshot? If you run code --verbose to start vscode in this state, what output do you get?

Same problem here...
Here is a screenshot:

I can start a new window with right click on task bar.
ssh-remote is probably the culprit, it is hanging when opening a particular directory (and does not hang after just renaming that folder).
output of code --verbose

[main 2019-10-15T16:48:43.284Z] Starting VS Code
[main 2019-10-15T16:48:43.285Z] from: c:\Users\francois\AppData\Local\Programs\Microsoft VS Code\resources\app
[main 2019-10-15T16:48:43.285Z] args: { _: [], verbose: true, diff: undefined }
[main 2019-10-15T16:48:43.287Z] Resolving machine identifier...
[main 2019-10-15T16:48:43.287Z] Resolved machine identifier: 3b297f199f1d86e8a469a0d36cec228d3b61c6dc8ed338875ff23602bd1a6151 (trueMachineId: undefined)
[main 2019-10-15T16:48:43.314Z] update#setState idle
[main 2019-10-15T16:48:43.315Z] [storage state.vscdb] open(c:\Users\francois\AppData\Roaming\Code\User\globalStorage\state.vscdb, retryOnBusy: true)
[main 2019-10-15T16:48:43.316Z] lifecycle (main): phase changed (value: 2)
[main 2019-10-15T16:48:43.316Z] windowsManager#open
[main 2019-10-15T16:48:43.378Z] lifecycle (main): phase changed (value: 3)
[9748:1015/184843.438:ERROR:jump_list.cc(286)] Failed to append custom category 'Recent Workspaces' to Jump List due to system privacy settings.
[main 2019-10-15T16:48:43.549Z] [storage state.vscdb] Trace (event): SELECT * FROM ItemTable
[main 2019-10-15T16:48:43.550Z] [storage state.vscdb] getItems(): 82 rows
[main 2019-10-15T16:48:43.622Z] getShellEnvironment: running on Windows, skipping
[main 2019-10-15T16:48:43.651Z] [storage state.vscdb] updateItems(): insert(Map(2) {telemetry.lastSessionDate => Tue, 15 Oct 2019 16:47:56 GMT, telemetry.currentSessionDate => Tue, 15 Oct 2019 16:48:43 GMT}), delete(Set(0) {})
[main 2019-10-15T16:48:43.652Z] [storage state.vscdb] Trace (event): BEGIN TRANSACTION
[main 2019-10-15T16:48:43.652Z] [storage state.vscdb] Trace (event): INSERT INTO ItemTable VALUES ('telemetry.lastSessionDate','Tue, 15 Oct 2019 16:47:56 GMT'),('telemetry.currentSessionDate','Tue, 15 Oct 2019 16:48:43 GMT')
[main 2019-10-15T16:48:43.654Z] [storage state.vscdb] Trace (event): END TRANSACTION
[9748:1015/184844.055:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.094:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.095:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.105:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.105:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.239:INFO:CONSOLE(1521)] "%c  ERR", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.246:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[main 2019-10-15T16:48:44.246Z] IPC#vscode-workbenchReady
[9748:1015/184844.251:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.264:INFO:CONSOLE(1521)] "%c  ERR", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.265:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.333:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.333:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.345:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.826:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184844.839:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.384:INFO:CONSOLE(1521)] "%cDEBUG", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.872:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.874:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.883:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.887:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.899:INFO:CONSOLE(243)] "%c[Extension Host] %c(node:5352) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. %c(at writeOut (internal/process/warning.js:18:20))", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (243)
[9748:1015/184845.926:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.926:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.935:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.935:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.946:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.950:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.957:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.957:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.965:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184845.975:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.711:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.711:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.711:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.712:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.712:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.712:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.712:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.712:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.713:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.713:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.713:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.714:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.714:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.714:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.714:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.715:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.715:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.715:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.715:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.716:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.716:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.716:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.716:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.717:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.717:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.717:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.717:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.717:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.718:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.718:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.718:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.718:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.718:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.719:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.720:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.720:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.720:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.720:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.720:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.720:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.721:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.721:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.740:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.743:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.751:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184846.941:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.218:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.258:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.259:INFO:CONSOLE(243)] "%c[Extension Host] %cExtension 'christian-kohler.path-intellisense' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (243)
[9748:1015/184847.259:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.259:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.259:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.260:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.260:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.261:INFO:CONSOLE(243)] "%c[Extension Host] %cExtension 'fabiospampinato.vscode-todo-plus' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (243)
[9748:1015/184847.262:INFO:CONSOLE(243)] "%c[Extension Host] %cExtension 'ionutvmi.path-autocomplete' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (243)
[9748:1015/184847.284:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.362:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.365:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.380:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.645:INFO:CONSOLE(1521)] "%cDEBUG", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.647:INFO:CONSOLE(1521)] "%cDEBUG", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.648:INFO:CONSOLE(1521)] "%cDEBUG", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184847.648:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[main 2019-10-15T16:49:10.522Z] Lifecycle#window.on('close') - window ID 1
[9748:1015/184910.526:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[main 2019-10-15T16:49:10.523Z] Lifecycle#unload() - window ID 1
[main 2019-10-15T16:49:10.530Z] Lifecycle#unload() - no veto (window ID 1)
[9748:1015/184910.529:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.532:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.534:INFO:CONSOLE(1521)] "%c  ERR", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.537:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.538:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.538:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.539:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[9748:1015/184910.552:INFO:CONSOLE(1521)] "%cTRACE", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (1521)
[main 2019-10-15T16:49:10.562Z] Lifecycle#onBeforeWindowClose.fire() - window ID 1
[main 2019-10-15T16:49:10.581Z] Lifecycle#window.on('closed') - window ID 1
[main 2019-10-15T16:49:10.581Z] Lifecycle#onWillShutdown.fire()
[9748:1015/184910.584:INFO:CONSOLE(363)] "Cannot write message in a disposed ProtocolWriter", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (363)
[9748:1015/184910.585:INFO:CONSOLE(363)] "[object Object]", source: file:///C:/Users/francois/AppData/Local/Programs/Microsoft VS Code/resources/app/out/vs/workbench/workbench.desktop.main.js (363)
[main 2019-10-15T16:49:10.599Z] Lifecycle#app.on(window-all-closed)
[main 2019-10-15T16:49:10.600Z] Lifecycle#app.on(before-quit)
[main 2019-10-15T16:49:10.600Z] Lifecycle#onBeforeShutdown.fire()
[main 2019-10-15T16:49:10.607Z] Lifecycle#app.on(will-quit)
[main 2019-10-15T16:49:10.607Z] [storage state.vscdb] close()

OS: Windows 10
VSCode version 1.19.1

I can share the logs tomorrow. Right now I'm able to confirm @fsteinmetz screenshot is identical to my issue.

@FelixZY I don't know for you, but here the problem disappeared with VSCode 1.39.2.

Can anyone still seeing this also get the output with code --verbose?

AFAIK the extensions do not block entirely the rendering of the menus, of the status bar, etc.

Sorry for the slow response - it has been a very busy few weeks.
Running 1.39.2 I am currently unable to reproduce my issue.


fix(location) #86: add missing capabilities

I think that the correct issue to reference in this PR is the #89

yes you are right..


Add pull request template

Add Pull Request template

Why

Some of our Pull Requests have really lovely descriptions and explanations, and this is a Good Thing. This template will hopefully remind us to explain our changes and (more importantly) the reasons for them in a consistent way. Consistency of format is less important than consistently documenting our decisions and assumptions.
What

Add a template for PRs that is presented to developers on opening a Pull Request. The basic structure is simple: "Title", "Why", "What". The reminders of what to include are commented out so as to avoid accidentally including them in the visible PR description when published.
Checklist
The checklist is optional, and perhaps too cumbersome, but may be useful to help reviewers avoid running into problems when trying to test the PR branch.

[ ] Requires migrations?
[ ] Requires dependency updates?

Ugh, I already regret the checklist - it shows up as "tasks"

Codecov Report

Merging #376 (705b8fd) into master (50de158) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #376   +/-   ##
=======================================
  Coverage   91.44%   91.44%
=======================================
  Files         260      260
  Lines       14525    14525
  Branches     1089     1089
=======================================
  Hits        13282    13282
  Misses       1044     1044
  Partials      199      199

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 50de158...705b8fd. Read the comment docs.


Front-end add and remove buttons

Hi @rafaelcastrocouto,
Thank you for your patience and the PR. Some feedbacks, first I like the feature :)
But I prefer not to include it, mainly due to security reasons. For example, if someone modifies host in conf.json, then anyone could execute any command.
Also, I prefer to keep hotel simple.
Such feature would require additional security code, and warnings in the README.
I think a third-party tool could be a good alternative though. It could provide, for people who want it, a CRUD interface to ~/.hotel/servers with appropriate protections.
And it could be installed using something like this hotel add server-manager.

It's fine ... I'm actually using Yez since it handles the full package. Hotel will always hold a place in my heart, though. Thx for your time!


Fix bot comments

Docs Build status updates of commit c1c7243:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


FIX Register del method of TwinModel to avoid issue atexit

@chrpetre The error raised at the end of the example script execution was due to python interpreter calling the cleanup method register to atexit module in the pytwin.settings module before to call the del method of the TwinModel.
There was no issue if the example business logic is encapsulated into a main method and the main method called at the end of the script. I think this due to the order in which methods are registered by the interpreter, which follow a last in, last out pattern at process exit.
The solution I found is to explicitly register the del method of TwinModel object to the atexit module. When importing pytwin, the init.py script in called, and then the registration of the del method is done after the registration of the settings.cleanup_temp_pytwin_working_directory method, which should avoid it to try deleting log file of the runtime of the TwinModel before it to be closed.

Codecov Report

Merging #116 (54dfa0a) into main (e3df00f) will decrease coverage by 0.99%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #116      +/-   ##
==========================================
- Coverage   89.03%   88.04%   -0.99%
==========================================
  Files          11       11
  Lines        2334     2326       -8
==========================================
- Hits         2078     2048      -30
- Misses        256      278      +22


Add dependency for jsp for unit tests.

Assuming the tests called "testJspNotCompiled" are indeed intended to test that a non-precompiled jsp can be compiled on the fly ... the problem was that the jsp jars were not on the test classpath.
Jan

LGTM. Thanks!


Disable sync-async for the compiler so it matches what flutter engine expects.

Bug: https://github.com/flutter/flutter/issues/19340

@chinmaygarde wrote

Unrelated changes in the project pbxproj are staged.

Thanks, fixed.

I believe this is moving us in wrong direction and instead of disabling sync-async here we should be enabling it in the engine: https://github.com/flutter/engine/pull/5765


Feature / Homepage banners added

Project organization

Related trello card

Description
By using dashboard, dashboard user can now add banner(s) to the homepage.
Checklist

[x] Base branch of the PR is dev

One feedback on the implementation, can we have a skeleton effect while loading the background image?

Currently, if the image is a bit heavy, it is pretty slow to load on my side (images from 3MB are slow)
in the mean-time the image is loading, only the text and button are displayed. If you have a white background on your platform and set your text color to white, then it looks buggy as nothing shows up for a few seconds on the screen

Adding a skeleton loader for the component will improve the UX and remove the bug feeling for the end users

One additional point we could change maybe right now for consistency is to rename the section from “Starter kit configuration” to “Marketplace template configuration” as we stop using the “starter kit” wording.

@antho1404 have any idea how we can improve the loading of the image?
As we upload them on admin, we get IPFS link. And that's why it takes blank screen for a while.
After first time use this shouldn't be issue.
Also we don't have this loader on token cards either, same loading strategy. But we have background color for this case.
So I've added background + priority tag to the banner images.


When the button is first drawn it has a double height top line

When the button is first being initialised (before the card number is added etc). it has a weird double line artifact at the top.
I'm using version 1.0.0

@barry-irvine This is supposed to be a loading indicator 😉

Yeah, I've just realised it's the LinearProgressIndicator when in dark mode! Although I think if the rest of the animations had been as smooth as above then it would have been better anyway. How is yours so smooth?!


Add failing nested associated-type test

@saipraveenb25 We need to convert this into an issue and close this PR if we don't plan to get to it now.

Will raise an issue for this. Fixing this problem needs some refactoring of the existential-types code. It is likely to take a while.


Tutorial video

A screen that plays back the tutorial video:

"skip" button

this should go in #260


Implement error handling

Currently all error handling is done by logging the error message to the console. We need to implement a user friendly way of handling them and making sure a user knows what's happened.

This has been resolved in #24


Cannot run starter web application on beta5

I have updated dnx and packages to beta5 and can't run web app.

That happens when you update sometimes :smile: . We made a breaking change, so now you have to pass in the base path to the Configuration constructor:
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
        {
            // Setup configuration sources.
            var configuration = new Configuration(appEnv.ApplicationBasePath)
                .AddJsonFile("config.json")
                .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true);

Fixed, Thank you very much.
Got another problem
MissingMethodException: Method not found: 'Microsoft.Framework.Runtime.Compilation.ILibraryExport Microsoft.Framework.Runtime.ILibraryManager.GetLibraryExport(System.String)'. Microsoft.AspNet.Mvc.Razor.Compilation.RoslynCompilationService.GetApplicationReferences()

Latest beta5 resolved the issue.

I got the same issue (MissingMethodException) on the latest VS2015 RC and beta4.
@dopare you said, that beta5 resolved the issue but I can't find any beta5 package not on api.nuget.org nor on nuget.org. It's only daily builds on myget feed.
Just try to understand how it looks: people install RC of VS2015, it will install beta4 of AspNet5 and an app doesn't work.

We're going to be changing this behavior in the next version of Visual Studio. In the RC here is the behavior:

File new project, everything is dandy
You run dnvm upgrade -u
File new project, nothing runs

This happens because Visual Studio respects the upgrade creates new projects with the version of the dnx that you upgraded to (look in global.json). The original idea was that VS stays in sync with your command line. The problem that causes is what you're experiencing, breaking changes. We realized that doing that is useless because the templates themselves are still pinned to beta4, so the best thing to do for file new project is to hardcode the known dnx version that works with the in box VS templates.

@evil-shrike I'm trying not use VS for build when working with nightly builds. I didn't got MissingMethodException on VS2015 RC and beta4. My issue was when I tried to use VS generated beta4 source for beta5.

Perhaps we should create a project template that is kept in sync with the latest bits and include it in the setup instructions so that anyone will be able to install the latest DNX and have a matching project template.  It will make it easier for new developers to get up and running and David won't have to keep explaining the latest breaking changes.


Update php-jwt dependency

Found 1 security vulnerability advisory affecting 1 package:
+-------------------+----------------------------------------------------------------------------------+
| Package           | firebase/php-jwt                                                                 |
| Severity          | critical                                                                         |
| CVE               | CVE-2021-46743                                                                   |
| Title             | Key/algorithm type confusion                                                     |
| URL               | https://github.com/advisories/GHSA-8xf4-w7qw-pjjw                                |
| Affected versions | <6.0.0                                                                           |
| Reported at       | 2022-03-30T00:00:00+00:00                                                        |
+-------------------+----------------------------------------------------------------------------------+

Fixed on 6.0.1


fix(seo): canonical links

This PR fixes an issue with the DirectoryHTMLBuilder in Sphinx.
For the standard HTML builder, canonical links are generated like this: example.com/about.html.
By default, Sphinx uses the same canonical links also for the DirectoryHTMLBuilder which is wrong.
This PR updates the canonical links to the format: example.com/about/ which is the actual URL.

This is set in the handle_page method of the StandaloneHTMLBuilder class, which is long and complicated. No idea, how to fix that upstream without re-implementing the whole thing in the DirectoryHTMLBuilder.


DRILL-7441: Fix issues with fillEmpties, offset vectors

Fixes subtle issues with offset vectors and "fill empties"
logic.
Drill has an informal standard that if a batch has no rows, then
offset vectors within that batch should have zero size. Contrast
this with batches of size 1 that should have offset vectors of
size 2. Changed to enforce this rule throughout.
Nullable, repeated and variable-width vectors have "fill empties"
logic that is used in two places: when setting the value count and
when preparing to write a new value. The current logic is not
quite right for either case. Added tests and fixed the code to
properly handle each case.
Revised the batch validator to enforce the offset-vector length of 0 for
0-sized batches rule. The result was much simpler code.
Added tools to easily print a batch, restoring some code that
was recently lost when the RowSet classes were moved.
Code cleanup in all files touched.
Added logic to "dirty" allocated buffers when testing to ensure
logic is not sensitive to the "pristine" state of new buffers.
Added logic to the column writers to enforce the zero-size-batch rule
for offset vectors. Added unit tests for this case.
Fixed the column writers to set the "lastSet" mutator value for
nullable types since other code relies on this value.
Removed the "setCount" field in nullable vectors: turns out
it is not actually used.

Rebased on master and resolved merge conflicts.

@vvysotskyi, thanks much for the review. Addressed your comments; please take another look.


Resize functions blade to make it easier to navigate to Log Stream

To see the AppService logs stream from a function run,  user needs to scroll and to get back to run button on the function, needs to scroll back

It would make it easier if we can resize the function blade

This will have to be an ask to the ibiza framework

@pragnagopa any reason why you're using the external log stream blade and not the integrated log stream?

Ran into this while testing EnableTestSend for NH. Opened Issue to add ability for extensions to write to function logs.
In general, when user accesses WebApps features/settings multiple blades open and it would be easier to navigate if functions blade can be resized.

Won't fix. Core issue isn't feasible because we didn't design Funky UX tab to be resizeable, thus even if Ibiza supported, we likely wouldn't do without a major overhaul.


Executing commands on a slave zone

Many commands only apply to a master (coordinator) zone and you would not expect a user to execute them on a slave. However people do!
Below is a list of commands tested against a slave zone, and at the bottom one against a zone that has volume set to fixed (typically a ZP90 driving an external amp). It shows the command and the behaviour / error that occurs.
Maybe this behaviour is what we should expect, and users should trap it?
Or should we do nothing and just return (as play and stop do)?
Or should we raise a trappable exception with a clear message that it should not be executed on a slave?
Or......
Welcome thoughts
Cheers David
1) commands executed on a slave:

    play               does nothing - ok?
    stop               does nothing - ok?

    play_uri           un_joins zone to be a master and plays -ok?
    play_from_queue    un_joins zone to be a master and plays -ok?
    switch_to_line_in  un_joins zone to be a master and sets to line in -ok?

    pause              soco.exceptions.SoCoUPnPException: UPnP Error 701 received: Transition not available from <IP_ADDRESS>
    seek               soco.exceptions.SoCoUPnPException: UPnP Error 701 received: Transition not available from <IP_ADDRESS>
    next               soco.exceptions.SoCoUPnPException: UPnP Error 701 received: Transition not available from <IP_ADDRESS>
    previous           soco.exceptions.SoCoUPnPException: UPnP Error 701 received: Transition not available from <IP_ADDRESS>
    partymode          soco.exceptions.SoCoUPnPException: UPnP Error 501 received: Action Failed from <IP_ADDRESS>
    add_to_queue       soco.exceptions.SoCoUPnPException: UPnP Error 800 received:  from <IP_ADDRESS>
    remove_from_queue  soco.exceptions.SoCoUPnPException: UPnP Error 800 received:  from <IP_ADDRESS>
    clear_queue        soco.exceptions.SoCoUPnPException: UPnP Error 800 received:  from <IP_ADDRESS>

2) command executed on zones with fixed volume set:
    volume             soco.exceptions.SoCoUPnPException: UPnP Error 501 received: Action Failed from <IP_ADDRESS>

please check out #296 :)

This should be fixed with #296 as found the latest release 0.11. Please re-open if that is not the case.

This simply does not work :
#!/usr/bin/env python
from soco import SoCo

if __name__ == '__main__':
    sonos = SoCo('<IP_ADDRESS>')
    sonos.clear_queue()
    sonos.play_uri('http://<IP_ADDRESS>:8000/12.Maps.mp3')
    sonos.play()

outputs :
> $ python play.py
Traceback (most recent call last):
  File "play.py", line 17, in <module>
    sonos.play()
  File "build/bdist.linux-x86_64/egg/soco/core.py", line 439, in play
  File "build/bdist.linux-x86_64/egg/soco/services.py", line 158, in _dispatcher
  File "build/bdist.linux-x86_64/egg/soco/services.py", line 349, in send_command
  File "build/bdist.linux-x86_64/egg/soco/services.py", line 409, in handle_upnp_error
soco.exceptions.SoCoUPnPException: UPnP Error 701 received: Transition not available from <IP_ADDRESS>

Hallo @AdrienPensart
And thanks for you message.
It does not seem to me that this is related to the discussion above, which deals explicitly with the problem of executing commands on a zone that is a slave.
Please open a separate issue for your problem.
Regards Kenneth


CHAOSSCast | Universities and Open Source

Please get approval from the CHAOSScast facilitator before creating a CHAOSScast episode release checklist issue. You can learn more about the process for CHAOSScast by visiting our CHAOSScast process documentation
Planning Doc: https://docs.google.com/document/d/1MgmXDfyqovliEKbcpCOqaZ0_w9PR81p35Ipu37WkT0k/edit
CHAOSScast Episode Release Checklist
Scheduling an episode

Step 1: Propose a topic and guest(s) (Anyone)

[x] Action: Discuss with facilitator to get approval for the episode topic and guest.
[x] Action: Recruit interview guest to finalize topic and content of the podcast together

Step 2: Facilitate Episode (Facilitator)

[x] Action: Send invitation email to guest to find a few potential suitable dates and times (60-90 minutes.)
[x] Action: Notify organizer of guest's date and time possibilities, and confirm one.
[x] Action: Prepare the planning document (copy the Episode Planning Document template and start filling in information.)
[x] Action: Invite panelists from the CHAOSS community who have expertise in the episode topic.
[x] Action: Confirm panelists
[ ] Action: Send calendar invitation with confirmed date of the podcast

The event has to be created in the CHAOSScast calendar

All organizers should have full access to the calendar (i.e., Make changes and manage sharing)

Name calendar event:🎙  CHAOSScast {Topic}

Start with the microphone emoticon (🎙 ) to signal recording meeting

[ ] Action: Send out a confirmation email that includes the “how we podcast” document to guests and panelists
[ ] Action: Update the episode overview table
[ ] Action: If the episode is more than two weeks out, schedule a reminder email for 1 week before the episode recording
[ ] Action: Schedule a reminder email for 24-hours before the episode recording

Step 3: Finalize Content (Organizer)

[ ] Action: Update the episode planning document with the main topics and questions

Step 4: Post-Episode Thank You Notes (Georg Link)

[ ] Action: Mail out thank you note with swag

Recording an episode

On day of podcast (Organizer and Panelists):

[ ] Action: Review the CHAOSScast Recording Procedures before the session starts

Feel good about yourself and get excited!

When podcast session starts (Organizer and Panelists):

Join the Zoom room on time
[ ] Action: Confirm that the podcast is being recorded.
Be yourself
Enjoy

After the podcast is recorded:

[ ] Action: Go to Zoom and get the link to the recording
[ ] Action: Set the recording to not expire
[ ] Action: Email the link to Paul Bahr from Peachtree Sound

Publishing an episode (~30-40 min)

Paul Bahr from Peachtree Sound will send the edited podcast and show notes (email) After podcast is edited

[ ] Action: Get edited podcast and show notes from Paul
[ ] Action: Review the Episode Planning Document for the guest's profile pic, bio, and social media links.
[ ] Action: Create the Cover Art by downloading a sample cover art from Dropbox and updating the episode number
[ ] Action: Upload the shownotes to google drive and use Convert to Markdown to get markdown format
[ ] Action: In Fireside, create missing panelists and guests

Slug is firstname-lastname (e.g., georg-link)
Status: public
The other information should be in the Episode Planning Document

[ ] Action: In Fireside, create a new episode

Permalink: # (only the number of episode)
Visibility: Public
Title: Title from the Episode Planning Document
Title Format: Episode 123: My Great Title (default)
Content: Clean (unless we used swear words)
Summary: First paragraph from the Show Notes are a good starting point
Description: Insert the show notes in Markdown format.

Hint: convert show notes to Google Doc and export as Markdown
As the first line above the bolded episode info, add this line: Thank you to the folks at [Sustain](https://sustainoss.org/) for providing the hosting account for CHAOSSCast!

Keywords: (use sparingly to avoid keyword cannibilization)
Tags: (empty) -- we can use tags later for having sub-podcasts
Hosts and Guests: activate everyone who was on the show. Regular panelists are all hosts, even when they are guest on an episode.
Social Media Destinations: (ignore)
Apple Podcasts Settings: (ignore)
MP3 File: upload MP3 file provided by CPN through Dropbox
Cover Art: upload cover art with the correct episode number
Header Image: (ignore, will use default)
Transcript: (ignore)

PUBLISH

[ ] Action: When the episode is scheduled for release that week, notify all participants via email, and send guests this link to a webform to get their mailing address
[ ] Action: Update the template CHAOSScast Calendar
[ ] Action: Post about it on Discourse and Slack (template)
[ ] Action: Notify community manager for inclusion in upcoming CHAOSS newsletter
[ ] Action: Post on social channels (LinkedIn, Mastodon)
[ ] Action: Advertise outside of CHAOSS

SustainOSS Forum (?)

@germonprez I'm assigning you to the issue so that you can check things off as you do them.  You'll find some templates for email reminders and such linked from the issue that will be helpful for you.
Can you ping me when you've recorded to remind me to send the recording to Paul for editing?
I also noticed that you removed the guests section from the planning doc, but I'll need that info so that I can add them as Guests on the podcast, so can you add that back in so that that they can complete that section with the info that they want on their profile? I try not to assume what they want, so it's better to create a Guest section for anyone who hasn't already been on one of our podcasts.


Implement assembly version's per "band" to ensure binding redirects work

Fixes #205 and #97.
/cc @shiftkey @mattpodwysocki @natemcmaster @shana @forki @omerraviv for review.

This change is

Hi @onovotny, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Trying to build the project errors out here. Am I missing something?
Attempting to gather dependency information for package 'gitversion.commandline.3.5.5-pullrequest0921' with respect to project 'packages', targeting 'Any,Version=v0.0'
Package 'gitversion.commandline,3.5.5-pullrequest0921' is not found in the following primary source(s): 'C:\Users\shiftkey\AppData\Local\NuGet\Cache,C:\Users\shiftkey\.nuget\packages\,https://api.nuget.org/v3/index.json,C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'. Please verify all your online package sources are available (OR) package id, version are specified correctly.

It should be using the Build Packages feed with the guid in it.... That's where I put that package while I wait for it to be officially merged and published.

@onovotny I think this is related to where you execute the build-new scripts from.
On my machine, when I run .\Rx.NET\Source\build-new the location isn't changed, so it:

checks and downloads nuget.exe to root of the repository
nuget restore ... doesn't resolve a nuget.config at the root
it misses the additional Build Packages feed, so it can't find this new package

The workaround I tested was to do this:
Push-Location ".\Rx.NET\Source\"
Write-Host "Building Rx.NET" -ForegroundColor Green
.\build-new
Pop-Location

There's probably a much cleaner way to do this, but I also haven't looked into why Appveyor isn't failing in the same way...

@shiftkey there's a nuget.config at the root here that should work https://github.com/Reactive-Extensions/Rx.NET/blob/master/NuGet.Config. Was that not getting picked up for you?

Was that not getting picked up for you?

It was not, but let me have another shot at it now...

Build script is fine now on my machine, I just can't create packages:
Building Packages

    Directory: C:\Users\shiftkey\Documents\GitHub\rx.net

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       11/07/2016   8:07 AM                artifacts
Attempting to build package from 'Microsoft.Reactive.Testing.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Core.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Experimental.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Interfaces.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Linq.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Observable.Aliases.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.PlatformServices.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Providers.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Runtime.Remoting.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Windows.Forms.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.Windows.Threading.nuspec'.
The special version part cannot exceed 20 characters.
Attempting to build package from 'System.Reactive.WindowsRuntime.nuspec'.
The special version part cannot exceed 20 characters.

Looking at the diff for the generated AssemblyInformationVersion entry, it seems like GitVersion is being very verbose:
-[assembly: AssemblyFileVersion("<IP_ADDRESS>")]
-[assembly: AssemblyInformationalVersion("<IP_ADDRESS>")]
+[assembly: AssemblyFileVersion("<IP_ADDRESS>")]
+[assembly: AssemblyInformationalVersion("3.0.1-assembly-versions.27+Branch.assembly-versions.Sha.ab35480481315a6703909afab95b4fb769b6d898")]

Do we care about this constraint?

After a fresh build there are two changes to dependencies:

Rx.NET/Source/NuSpecs/Microsoft.Reactive.Testing.nuspec bumps xunit.assert from v2.1.0 to 2.2.0-beta2-build3300
Rx.NET/Source/NuSpecs/System.Reactive.Observable.Aliases.nuspec adds System.Resources.ResourceManager v4.0.1

@onovotny just a few little things - would love to be able to poke the packages and verify the changes but I won't hold that up because of how GitVersion names branches in this situation...

Yeah, I wouldn't worry about any package failures due to branch names. I wish NuGet didn't have that limit; otherwise, I can also look into ways to truncate to fit. Prob another PR.

As for versions of BCL refs, I'm going to create a separate PR to remove those granular deps and just reference NETStandard.Library. That's the new/current recommendation of the NuGet/BCL team.

@onovotny :thumbsup:

As for the xunit.assert version, #210 will turn that into a source reference, internal, so that dependency will go too.


Ungraceful error: Already found a mapping for inlining short name

goog.module('a');

const a = goog.require('a');
const a = goog.require('a');

Result:
java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please file a bug at http://go/jscompiler-bug with this stack trace, sponge link, and repro steps (a CL# and a build target).

Already found a mapping for inlining short name: a
  Node(CALL): input0:4:10
const a = goog.require('a');
  Parent(NAME a): input0:4:6
const a = goog.require('a');

	at com.google.common.base.Preconditions.checkState(Preconditions.java:523)
	at com.google.javascript.jscomp.ClosureRewriteModule.recordNameToInline(ClosureRewriteModule.java:1296)
	at com.google.javascript.jscomp.ClosureRewriteModule.updateGoogRequire(ClosureRewriteModule.java:860)

https://closure-compiler-debugger.appspot.com/#input0%3Dgoog.module('a')%253B%250A%250Aconst%2520a%2520%253D%2520goog.require('a')%253B%250Aconst%2520a%2520%253D%2520goog.require('a')%253B%26input1%26conformanceConfig%26externs%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26CLOSURE_PASS%3D1%26LANG_IN_IS_ES6%3D1%26MISSING_PROPERTIES%3D1%26PRESERVE_TYPE_ANNOTATIONS%3D1%26PRETTY_PRINT%3D1%26TRANSPILE%3D1

Er, shouldn't this be a syntax error (or at least an early error in CheckVars or something) to have two const as?

Yes, but it should not be an INTERNAL COMPILER ERROR.
This might be caused by ClosureRewriteModule running before the real error.

@MatrixFrog I now think VariableReferenceCheck should run before the closure passes.


StoryArcNumber with multiple story arcs

I noticed StoryArcNumber was added in v2.1, and I'm not quite sure that handles issues with multiple story arcs very well. It might make more sense to make it complextype so each arc can have the arc number associated.

It's not documented, but values separated by comma will be handled in pair with the values in StoryArc.
It was added to handle this exact use case between Mylar and Komga.

Figured it was a delimited string, but design-wise seems a bit fragile to do it this way. Might make sense to add a subelement or something to track the arc number with it's arc. Also, it might make it easier in the future you want to add anything else, like total arcs, etc

Keep it mind that we only do non breaking changes. It needs to remain compatible with the ComicRack usage too. So if people in CR wants to put multiple values, they would use comma separated, same as for authors.
The format has limitations, and the aim of this project is not to create a new format, just to make small mon breaking enhancements that are backward compatible.
It's not always pretty, but it works.

Resolved with https://github.com/anansi-project/anansi-project.github.io/commit/14588e3f481e860722a64e6e0160036347e781f2


Square Root symbol broken

The square root symbol only renders on some equations and it seems a bit broken when it does render.

This happens on both my linux and windows machines

Hi,
I think that I forgot to set the font of the upper character, so the size and position change if you don't have the same font for default text in VSCode. I will force to use a font installed with the extension.
For the second equation, this is normal, my extension only renders basic symbols/equations, I can try to render more complexe things, but it's hard to find a simple/optimised way to render a lot of symbols without too many conditions and special cases.

Thanks for the quick bug fix!
I can appreciate that it is hard to make this work on every case, I just wasn't sure if it was supposed to render or not in the second case.
One further request I would make is to allow us to choose if a character gets rendered or not, I know we can choose between some presets but allowing us to pick specific exceptions would be great.
Thanks again for your work.

I will publish the modification in the next version, and put the vsix file here with the patch to allow you to download it before the next release.
I like your idea about choosing precisely symbols, I will also try to add it.


feat(backscraper-maine): Add simple backscraper for 2016-2020 opinions

PR adds backslapper for years 2016 to 2020 for Maine SJC
Maine was briefly down - but that extended into last year.  So I added a simple backscraper to handle these older cases.

You know I'm kinda new to back scrapers, I thought you could assign year something like this?
from juriscraper.opinions.united_states_backscrapers.state import me

site = me.Site()
site._download_backwards(year=2019)

@arderyp thanks.