State detail user feedback

Overview
Addresses feedback in #168:

shortens height of state detail area chart
shows percentage reduction on state detail top line instead of MMTCO2e
updates data source citations with links to full citation on about page
refactors terminology page as a list of definitions defined in terminology-list.js so we can use them throughout the site
for terms used throughout the site, uses Bootstrap's Tooltip to hover/click for a definition popup without having to link off to the terminology page
small text change for building appliances on state detail

Closes #168
Demo
Shorter chart on state detail:

Terminology tooltip hover:

Testing Instructions

check the state detail page and confirm top line looks good and chart is smaller
look for dashed underline words and confirm hovering over them shows a definition tooltip
on mobile, confirm terminology tooltips work by tapping

With larger text it looks fine, but on my laptop screen at least the dashed underline for the tooltip makes it really hard to read:

I think a better approach might be to use a ? icon from somewhere like Icomoon and make it so the tooltip shows up when you hover that. Ideally, we should do a <span tabindex="0" role="tooltip">{icon} so that keyboard users can access the tooltip information as well.

@vkoves I had a feeling you'd have some design thoughts on the term styles. i like the icon idea. i typically use fontawesome, but i'm open to using others

@derekeder - font awesome sounds great! I don't have a strong preference there, and info icon should be fine.
As for the graph isn't there a way to scale it on desktop specifically? I can't imagine the 800px width is applying on mobile, I think there it always gets full width

@vkoves for the icon, you added an SVG for the link in #173. Where did you get that from? I think we can follow the same pattern here and just add the SVG.
For the graph size, the way recharts sizes the chart is a bit strange. I had to override some weird CSS to even get the size to change at all. If you have ideas on how to scale on different devices, please go ahead.

@derekeder - I got my icon from IcoMoon. My link icon was from the Icomoon free pack, so ideally you can use the info icon in there:

@vkoves tried a few options, but not really in love with either of them. I was thinking of doing something similar to wikipedia's citations:

I like the question mark @derekeder! But you could also post in Slack and see what folks think

I think I'll go for the question mark. I like it the most of the 3.

ok ready for another look

@derekeder FYI now that I merged my work there's a conflict

yup just resolved

@derekeder - you added a nowrap class, but it doesn't do anything (you can see that with DevTools):

If I add white-space: nowrap inline it does indeed work, I think you might have meant text-nowrap, which is referenced in the Bootstrap 4.6 docs.

ah good catch. it was actually the <span> that changed the behavior. updated with the bootstrap class

@derekeder - apologies, but just thought of something I left as an inline comment:
https://github.com/chihacknight/decarbonize-my-state/pull/172#discussion_r1083543692


Removed Get pcfawsops-terraform-state-get from pipeline.yml, prepare-…

Removed state file requirement when running pipeline for the first time.

Looks good.


Support equivalent of html.format.wrapAttributes: force-aligned

Description
What would you like to see added to XML Tools?
I would like XML Tools to support the same "wrap attributes" modes as the built-in HTML modes, but especially "force-aligned".
My team formats their XML like this:
<myThingy attr1="val1"
          attr2="val2"
          ...>

While "xmlTools.splitAttributesOnFormat" only supports indenting by your standard "indent" amount, rather than keeping the attributes aligned.
e.g.
<myThingy attr1="val1"
    attr2="val2"
    ...>

Current Workarounds
Are you using a workaround in the meantime?
Right now, I'm just associating my XML files with the HTML filetype so that I can use the "force-aligned" mode. This is really awkward, because it means turning off all HTML suggestions/validations, and prohibits me from using other XML-associated tools.

Big thumbs up for this idea, particularly in combination with #245 .

+1


Silent execution of the external recipe with a command line option.

For example, if you want to just run the passed in external receipt, maybe you'd pass the --quiet (or -q) switch:
reset-tenant -q my-recipe.js

And maybe if you wanted to silently run other builtin recipes:
reset-tenant -q --recipe clear,new_tenant

Given the state of the command now, I think we should use a subcommand line run:
reset-tenant run --recipe clear [custom-receipt.js]

where:

--recipe (-r): the one or more builtin recipes (by ID) to run (eg. clear or clear,new_tenant)
[custom-receipt.js]: optionally run a custom recipe script after the builtin recipes

We may also need to support a list subcommand so the user can see the list of builtin recipes by their IDs:
reset-tenant ls

[clear] Clear: Removes all entities from the tenant (including webtasks/extensions) and puts settings back to their defaults
[new_tenant] New Tenant: Creates all the elements in a new Auth0 Tenant
...

Recipe IDs are simply the file names of the recipe scripts in the /src/recipes/builtin directory, minus their .js file extension


Getting the size of an object like DefaultHttpRequest is very difficult

I just noticed that classes like DefaultHttpRequest or DefaultHttpResponse have no easy method which returns the size of this object in bytes. For me this would be very useful. And probably also for some other people. For example some people might want to block too big requests.
Maybe this can be changed in the next version of Netty?

For example some people might want to block too big requests.

You can do that with  public HttpObjectAggregator(int maxContentLength);
Also in HTTP you can use HttpUtil.getContentLength(HttpMessage message, long defaultValue) that will give you content-length header.

There are cases when you don't want to use HttpObjectAggregator.
But I think it would be a good idea to add another parameter for HttpObjectAggregator which can set the maximum Requestheadersize.
Sometimes the header content-length might be missing.
It would make things easier for me if objects which don't use a ByteBuf would store the size in bytes.

honestly I think this is not something we want to change. IF you need it you can implement it by yourself.


gcloud builds submit command OR gcloud config set project fails within provisioner "local-exec"

Describe the bug
gcloud config set project and gcloud builds submit command fails with access / permission errors respectively within provisioner "local-exec" when a module is deployed via RAD Lab Launcher only on localhost (works with Cloud Shell)
│ + gcloud config set project <project_id>
│ WARNING: You do not appear to have access to project [<project_id>] or it does not exist.
│ Updated property [core/project].
.
.
│ ERROR: (gcloud.builds.submit) The user is forbidden from accessing the bucket [<project_id>]. Please check your organization's policy or
│ if the user has the "serviceusage.services.use" permission

To Reproduce
This issue was reproduced in #50 with more details on the issue in this comment.
Expected behavior
gcloud commands should complete successfully without any warnings or error.
Desktop (please complete the following information):

OS: [iOS]

Logs
More details on the issue in this comment.

This issue is now fixed as part of #63.


nox session doesn't find pytest installed by poetry

I'm following along the Hypermodern Python series and it seems in Chapter 2, Test automation with Nox there is a conflict between nox and poetry. Specifically when I use the example noxfile.py:
import nox

@nox.session(python=["3.8", "3.7"])
def tests(session):
    session.run("poetry", "install", external=True)
    session.run("pytest", "--cov")

I get the following error:
nox > Running session tests-3.8
nox > Creating virtual environment (virtualenv) using python3.8 in .nox/tests-3-8
nox > poetry install
Installing dependencies from lock file

No dependencies to install or update

  - Installing testpkg (0.1.0)
nox > Program pytest not found.
nox > Session tests-3.8 failed.

(and the same for tests-3.7)
It seems that installing pytest via poetry as a dev dependency doesn't put it on the path. In the previous section of Chapter 2, pytest was invoked through poetry and this does work in the nox session as well:
session.run('poetry', 'run', 'pytest', '--cov')

Is this an issue with my setup or is it expected that pytest can't be run as a command when installed by poetry?

Interesting. Which versions of Poetry and Nox do you use?

I'm using these versions:
$ nox --version
2020.5.24
$ poetry --version
Poetry version 1.0.8

I get a somewhat related error using the noxfile.py from Chapter 3. Now the situation is inverted: dev dependencies are install by Nox via session.install (i.e. pip) and the to-be-tested package is installed via Poetry: session.run('poetry', 'install', '--no-dev', external=True). Now invoking pytest directly works (i.e. session.run('pytest', *args)) however it doesn't find the to-be-tested package:
nox > Running session tests
nox > Creating virtual environment (virtualenv) using python3.8 in .nox/tests
nox > poetry export --dev --format=requirements.txt --output=/tmp/tmpoihujsek
nox > pip install --constraint=/tmp/tmpoihujsek pytest pytest-cov pytest-mock coverage[toml]
nox > poetry install --no-dev
Installing dependencies from lock file

No dependencies to install or update

  - Installing testpkg (0.1.0)
nox > pytest --cov
==================================== test session starts =====================================
platform linux -- Python 3.8.3, pytest-5.4.3, py-1.8.1, pluggy-0.13.1
rootdir: /path/to/testpkg
plugins: cov-2.9.0, mock-3.1.1
collected 0 items / 3 errors
Coverage.py warning: Module testpkg was never imported. (module-not-imported)
Coverage.py warning: No data was collected. (no-data-collected)
WARNING: Failed to generate report: No data to report.

/path/to/testpkg/.nox/tests/lib/python3.8/site-packages/pytest_cov/plugin.py:264: PytestWarning: Failed to generate report: No data to report.

  self.cov_controller.finish()

=========================================== ERRORS ===========================================
____________________________ ERROR collecting tests/test_base.py _____________________________
ImportError while importing test module '/path/to/testpkg/tests/test_base.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_base.py:6: in <module>
    import testpkg.base
E   ModuleNotFoundError: No module named 'testpkg'

I suppose this is because both Nox and Poetry maintain their own virtual environments and pytest has been installed into the Nox environment while testpkg has been installed into the Poetry environment? How are they supposed to know each other?

Thank you for the detailed information!
Can you also paste the output of poetry config --list?
So far, I have not been able to reproduce this.

I have been able to reproduce this, in some fashion. Looks like Poetry silently falls back to creating its own virtual environment if it cannot use the virtual environment it's running in. Can you try removing both the Nox and Poetry environments for your project?
cd path/to/hypermodern-python
rm -rf .nox
poetry env remove 3.8

Specifically, I did the following to reproduce the issue:
git clone https://github.com/cjolowicz/hypermodern-python.git
cd hypermodern-python/
nox -s tests -p 3.8
docker run --rm -ti -v $(pwd):/src -w /src python:3.8.3 bash
# in the container:
pip install nox==2020.5.24
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
source $HOME/.poetry/env
nox -s tests -p 3.8 -r

The output shows that Poetry creates its own virtual environment instead of using installing into the existing Nox environment:
nox > Running session tests-3.8
nox > Re-using existing virtual environment at .nox/tests-3-8.
nox > poetry install --no-dev
Creating virtualenv hypermodern-python-VsnhxLU2-py3.8 in /root/.cache/pypoetry/virtualenvs

I just checked and the tests run without problem on the CI server. Running locally on my machine however gives the above error. Removing the .nox and pytest environments unfortunately didn't help. It still complains that Program pytest not found. I can confirm that poetry install creates its own venv besides the already existing nox-venv. It's not completely clear to me what makes the difference between my local setup and the CI server (here the log shows that poetry doesn't create its own venv).

Thanks, some more questions then:

Which OS do you use?
Does the file .nox/tests-3-8/bin/pytest exist? (On Windows, replace bin by Scripts.)
If yes, what's the first line in that file? Is the path on that line located in the Nox environment?

I'm on Ubuntu 16.04. The file .nox/tests-3-8/bin/pytest doesn't exist though. When running nox after having deleted all the venvs, I get the following output:
[...]
nox > Running session tests-3.8
nox > Creating virtual environment (virtualenv) using python3.8 in .nox/tests-3-8
nox > poetry install
Creating virtualenv testpkg-pDH_AOha-py3.8 in /home/dominik/.cache/pypoetry/virtualenvs
Installing dependencies from lock file
[...]
  - Installing pytest (5.4.3)
[...]

So it seems pytest gets installed in the wrong venv (the one from poetry; why is this one created in the first place?). The output on the CI server is similar except it doesn't contain the line Creating virtualenv ... after poetry install so here poetry seems to reuse the nox-venv.
Running nox again one my local machine also skips that line but I suppose this is because it silently reuses the already existing poetry-venv.

I just figured it out (though I don't completely understand why that behavior occurred). Apparently there was a conflict with an active Miniconda environment which was automatically activated through .bashrc (its basically a blank environment). So every time I executed the nox command there was also the Miniconda environment activate. This apparently caused Poetry to create its own venv. After deactivating the Miniconda venv Poetry reuses the nox-venv. Is it because the Miniconda venv shadowed the Nox venv and Poetry realized this and thus created its own venv?

Glad you fixed it!
Poetry detects that it is running in a Conda environment via the CONDA_PREFIX environment variable. It will ignore this environment if CONDA_DEFAULT_ENV is base, to avoid polluting Conda's global "base" env, since most users have it activated all the time. When this happens, it won't look if it is also running in an activated virtual environment.
https://github.com/python-poetry/poetry/blob/1d64e1c75cfd03d8f98533645a7815f0dbcaf421/poetry/utils/env.py#L318-L325
Well, at least that's my impression of what happened here. Not able to test this right now.

Thanks for sharing that part of the source code, it seems relevant indeed (it was the "base" environment for me).
However I still don't understand the difference between the two cases, since both times in_venv results to be False. I put the various os.environ.get inside one of my nox sessions and this is what I get:
# Miniconda "base" active
env_prefix = "/home/dominik/miniconda3"
conda_env_name = "base"
in_venv = env_prefix is not None and conda_env_name != "base"
assert not in_venv

# Miniconda "base" deactivated
env_prefix = None
conda_env_name = None
in_venv = env_prefix is not None and conda_env_name != "base"
assert not in_venv

So from there on it continues to that branch where I cannot spot a difference between the two cases anymore.
I always assumed that the Nox venv would shadow the Conda venv, and the explicit check for "base" also suggests this (i.e. the base environment is not considered an environment, that's also what the comments imply).
I think I'll open an issue at Poetry since it seems to be related to their venv checks.

Well, the os.environ.get in your Nox session won't see VIRTUAL_ENV because it is only set by session.run for the process it spawns, e.g. pytest.
From what I can tell, Poetry's behavior does seem to be at fault though: It should use VIRTUAL_ENV if it is set, no matter if there is an activated Conda base environment, or not. There might already be an issue for that, I haven't looked.

You are right, I checked with a separate script which I invoked via session.run and the variables are set as follows:
# Miniconda "base" active
env_prefix = "/home/dominik/Projects/testpkg/.nox/test"
conda_env_name = "base"

# Miniconda "base" inactive
env_prefix = "/home/dominik/Projects/testpkg/.nox/test"
conda_env_name = None

So in the first case this creates a false-positive for not in_venv.

I created a corresponding issue.

I'm having this same issue where it appears Nox is using the Poetry virtualenv, but I don't think I have the same root cause becuase I am not using miniconda (or any conda). I have been following along with Hypermodern Python using two different computers both setup in WSL from scratch exactly the same way. One works great and the other doesn't. Not sure why they are different.
To answer the questions posed above:
I'm using Ubuntu 20.04 LTS
.nox/... does not exist
N/A
poetry config --list returns
cache-dir = "/home/joe/.cache/pypoetry"
experimental.new-installer = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/joe/.cache/pypoetry/virtualenvs

Thanks for reporting your issue!
Can you post the following?

poetry version
nox version
output of "nox --verbose" in your project

Your question helped me find the problem. The nox version was 2019.5.30 which did not match what my other computer was using. I ended up actually reinstalling my Ubuntu instance (running as WSL on Windows 10) and have been worked through the same initialization steps again. I realized that the installation of nox didn't quite work as expected. Running "pip install --user --upgrade nox" did complete the install, but then the nox keyword would return
Command 'nox' not found, but can be installed with:
sudo apt install nox

So I realized I had installed via sudo which installed the 2019.5.30 version. The underlying issue is that using the pip method to install nox did not add it to PATH, so I just needed to add
export PATH="$HOME/.local/bin:$PATH"

to my .bashrc file and reload the shell. Now it seems to work as expected.

$ poetry config virtualenvs.in-project 1
Solves this issue.
https://github.com/cjolowicz/hypermodern-python/issues/101#issuecomment-711088992

For people arriving here in 2022, I've found that I can get it to work if I execute nox within a poetry shell.

I'm not able to run Nox without the warning Warning: pytest is not installed into the virtualenv, it is located at /Users/<username>/Library/Caches/pypoetry/virtualenvs/testproj-xgPlhPPj-py3.11/bin/pytest. This might cause issues! Pass external=True into run() to silence this message..
My Nox file is:
import nox

@nox.session(python=["3.8", "3.9", "3.10", "3.11"])
def tests(session: nox.Session) -> None:
    session.run("poetry", "shell", external=True)  # Same warning without this line
    session.run("poetry", "install", external=True)
    session.run("pytest")

I'm using Poetry to manage the project which is set up with something like:
poetry new testproj
cd testproj
poetry add --group dev nox pytest
poetry env use python3.11
poetry install
poetry shell

My Python installations are managed through PyEnv and I have a Conda base environment activated at all time to avoid messing up the system Python. I tried to deactivate the Conda base environment but this yields the same warning.
I know I can bypass the issue by installing the project using pip like this:
@nox.session(python=["3.8", "3.9", "3.10", "3.11"])
def tests(session: nox.Session) -> None:
    session.install(".")
    session.install("pytest")
    session.run("pytest")

This works great excepted that it duplicates the development requirements in two places: in the Nox file and in the Project.toml one. However, I think that this last formulation is a better testing setting since the end user would install the package through pip anyway (also, this may be simpler for CI workflows, removing the Poetry install requirement).
Should I stick with this last solution or is there a better alternative for Poetry?

as per @oneextrafact, the following works
poetry run nox


Unhandled exception from sendBuf

I have observed the following:
                │[23:47] An unexpected error has occurred! The exception encountered was:
                │        sendBuf: resource vanished (Broken pipe)
                │        Please report this error at
                │        https://github.com/aisamanra/matterhorn/issues

While running commit c1b18747b9cb2f7d625593c309a6f6ce2e11af30

Should we litter HasCallStack everywhere and emit such a call stack on exception?

Duplicate of #116 - let's continue the discussion there!


[SPARK-12708][UI] Sorting task error in Stages Page when yarn mode.

If sort column contains slash(e.g. "Executor ID / Host") when yarn mode,sort fail with following message.

Ｉt's similar to SPARK-4313 .

Can one of the admins verify this patch?

ok to test.

@yoshidakuy Does this issue affect both yarn-client and yarn-cluster right?
Also, could you show the screen shot after applying this patch.

Test build #49013 has started for PR 10663 at commit fc45425.

Test build #49013 has finished for PR 10663 at commit fc45425.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49013/
Test FAILed.

Test build #49018 has started for PR 10663 at commit 62c04ca.

@sarutak Thanks. I have addressed your comment.

Does this issue affect both yarn-client and yarn-cluster right?

Yes.
Fixed screenshot is following.

Test build #49018 has finished for PR 10663 at commit 62c04ca.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49018/
Test PASSed.

Thanks for comments and I agree. will fix later.

Ping @yoshidakuy, could you update this pull request to address our comments? It would be great to merge this soon.

(I think we're going to do a 1.6.1 soon, so if we get this in soon it can be in that release)

@JoshRosen @sarutak Sorry for late.
I found same issue in PoolTable, so I fixed it too.

Test build #49396 has started for PR 10663 at commit 3d508c6.

Test build #49396 has finished for PR 10663 at commit 3d508c6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49396/
Test PASSed.

Test build #49407 has started for PR 10663 at commit 384b990.

@sarutak @zsxwing Thanks for your review. I have addressed your comments. Could you please check it?

LGTM

Test build #49407 has finished for PR 10663 at commit 384b990.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49407/
Test FAILed.

retest this please

Test build #49414 has started for PR 10663 at commit 384b990.

Test build #49414 has finished for PR 10663 at commit 384b990.

This patch fails from timeout after a configured wait of `250m`.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49414/
Test FAILed.

retest this please.

Test build #49433 has started for PR 10663 at commit 384b990.

Test build #49433 has finished for PR 10663 at commit 384b990.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49433/
Test PASSed.

LGTM as well. Merging into master and branch-1.6. Thanks @yoshidakuy !


Weekly Curation Queue e-mail was not received to gwas-curator mailing list

The subject of the e-mail is usually in the form:
'[gwas-curator] GWAS Curation Queue date'
And it contains an Excel file named eg. 'data_queue_date.csv'
It is sent to<EMAIL_ADDRESS>every Sunday at 7pm.
This week - 12/05/24 - the e-mail was not received.
Please investigate if a fix needs to be put in place for next week and going forward.

Since this has not happened again, moving to icebox


Add sublayers

Tl;dr -- add adata.sublayers that acts just like layers, but each sublayer["my_sublayer"] uses a subset of the var names of adata.var_names.
Intermediate cached matrices
In a lot of workflows, there are intermediate matrices that are used for one-time applications. As an example:

scanpy.pp.scale(adata) standard scales the var dimension, but this transformed data is only used for PCA
scale creates a heavy dense matrix, but PCA almost always uses a subset of vars as input, there's no need to keep all dimensions of scale output

Multimodal
We also have a common use case where we measure two aspects of our data (i.e., protein and RNA measurements). These measurements are made for every cell. Currently:

Paired secondary modalities are put in .obsm out of convenience
.obsm is not supported for plotting by scanpy

With sublayers, users can explicitly choose which adata var dimensions should be used for certain tasks like PCA. This effectively caches a subset of the data (along var dimension).
API example (with imagined scanpy api changes):
# hvg_genes is a list/mask/etc representing a subset of `adata.var_names`
adata.add_sublayer(name="hvg_scaled", layer="unfiltered_unscaled", var_names=hvg_genes)
adata.sublayers["hvg_scaled"] # the actual data as dense/sparse/pandas etc
sc.pp.scale(adata, layer="hvg_scaled") # no name clashes are allowed between layers and sublayers
sc.tl.pca(adata, layer="hvg_scaled")
adata.sublayers.var_names["hvg_scaled"] # pd.Index for sublayer associated var names

This could effectively also provide a way out of adata.raw. In the future, read_h5ad could detect if max(len(var_names), len(raw.var_names)) and then have adata.raw be an alias to the correct (sub)layer (most likely a layer as raw is often longer in scanpy workflows).
For scvi-tools, this would be great, as we only want the count data on a subset of var_names, but don't want users creating a whole new anndata just to work with us.
Just use MuData?
on the other hand, we could defer to mudata, though there are probably ways to make that API smoother when we know we have these constraints. Related: https://github.com/scverse/mudata/issues/13

I think this would be useful. The same way it is suggested there should be a var sublayer, there could be an obs sublayer. My feeling is that obs and var should be symmetrical.
I would suggest that in adata.add_sublayer you have to specify obs or var when creaitng a sublayer (var default), to or have two distinct kinds of sublayers (eg adata.sobs and adata.svar for obs sublayers and var sublayers).
For my workflow in particular having obs sublayers would make it handy to access subsets of cells. Frequently what I end  up doing is performing a query to select groups of interest and then storing the results as True/False in another obs column. Having obs sublayers would be another way to do this without cluttering the obs dataframe itself.

I also find this proposal useful for two reasons:

Handling multimodal data in scvi-tools.

I find that most collaborators don't store the raw integer counts for all genes (or any raw counts at all) because the current workflow requires all layers to have the same number of features and encourages storing normalised/scaled data in .raw. If I understand correctly, this proposal also solves that long-standing issue of keeping different feature subsets in the same object.

Just adding to this, sublayers could also be lazily generated when they are accessed, or cached .add_sublayer(..., cache=False).
With the lazy generation, this could be seen as a way to better store relevant subsets of data for users when e.g., plotting as @Munfred said


add vscode ignore

Reasons for making this change:
add vscode ignore when using unity.
Links to documentation supporting these rule changes:
just like when I used vs.

I came here to make this change! It'd be great if this could be included.

Looks like this change is also present in https://github.com/github/gitignore/pull/3467 and https://github.com/github/gitignore/pull/3513. Any will work!


How to install without pip and without admin rights

I want to use this project but I don't have pip installed, nor do I have the rights to install it
Can't I just run python /path/to/script.py ?

Hi @nbauma109, I suggest you look up how to install a Python package manually, see example. I hope this helps.


replace every occurrence of enables to PAUSED + HIDDEN for a better granularity

Hidden: Service is scored, yet doesn't show up on a scoreboard
Paused: Service is shown, but not scored
The combination of both will emulate a disabled object
the absence of both will emulate enabled service


kong 8443 on docker "Could not get any response"

Hello everyone, i'm getting a terrible problem that is drive me crazy this is my docker-compose.yml
version: "3.2"

networks:
  vendor-php_vendor_default:
    external: true

services:

  kong-database:
    container_name: vendor_kong-database
    image: postgres:11
    restart: always
    networks:
      - vendor-php_vendor_default
    environment:
      POSTGRES_USER: kong
      POSTGRES_DB: kong
    expose:
      - 5432
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "kong"]
      interval: 5s
      timeout: 5s
      retries: 5

  kong-bootstrap:
    container_name: vendor_kong-bootstrap
    image: kong:latest
    command: "kong migrations bootstrap"
    networks:
      - vendor-php_vendor_default
    restart: on-failure
    environment:
      KONG_PG_HOST: kong-database
    links:
      - kong-database
    depends_on:
      - kong-database

  kong-migration:
    container_name: vendor_kong-migration
    image: kong:latest
    command: "kong migrations up"
    networks:
      - vendor-php_vendor_default
    restart: on-failure
    environment:
      KONG_PG_HOST: kong-database
    links:
      - kong-database
    depends_on:
      - kong-database

  kong:
    container_name: vendor_kong
    image: kong:latest
    restart: always
    networks:
      - vendor-php_vendor_default
    links:
      - vendor_user-service:user-service
    environment:
      KONG_PG_HOST: kong-database
      # proxy configs
      KONG_PROXY_LISTEN: <IP_ADDRESS>:8000
      KONG_PROXY_LISTEN_SSL: <IP_ADDRESS>:8443
      KONG_ADMIN_LISTEN: <IP_ADDRESS>:8001
      KONG_ADMIN_LISTEN_SSL: <IP_ADDRESS>:8444
      # logs
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      # ssl config
      KONG_SSL_CERT: /certs/certificate.crt
      KONG_SSL_CERT_KEY: /certs/certificate.key
      KONG_ADMIN_SSL_CERT: /certs/certificate.crt
      KONG_ADMIN_SSL_CERT_KEY: /certs/certificate.key
      KONG_SSL: "on"
    depends_on:
      - kong-migration
      - kong-database
      - vendor_user-service
    healthcheck:
      test: ["CMD", "curl", "-f", "http://kong:8001"]
      interval: 5s
      timeout: 2s
      retries: 15

    ports:
      - 8000:8000
      - 8001:8001
      - 8443:8443
      - 8444:8444
    volumes:
      - ./certs:/certs

  #######################################
  # Elastic: Set up an elastic docker behind Kong
  #######################################
  kong-elastic:
    container_name: vendor_kong-elastic
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
    restart: always
    networks:
      - vendor-php_vendor_default
    environment:
      - "discovery.type=single-node"

  ## micro services

  vendor_user-service:
    container_name: vendor_node-user-service
    external_links:
      - mysql_vendor
    image: node:alpine
    volumes:
      - ./microservices/user-service:/app
    working_dir: /app
    networks:
      - vendor-php_vendor_default
    environment:
      NODE_ENV: development
    ports:
      - 3001:3000
    expose:
      - 3000
    command: npm run dev

And this the request that i'm trying to do.
curl -X POST
https://localhost:9443/users/oauth2/token
-H 'Content-Type: application/json'
-H 'Host: user-service'
-d '{
"client_id": "CLIENT_ID_11",
"client_secret": "CLIENT_SECRET_11",
"grant_type": "password",
"provision_key": "5iRVB74YVoWKDI7YdIuD9eWSH2iMRR66",
"authenticated_userid"<EMAIL_ADDRESS>"scope": "email"
}'
And if i try to do with -k (ignore certificate) i had this error message:
"curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:9443"
On postman with ssl verification disabled:

Hi @jl91
Can I ask you something?
For the ENV variables of Kong SSL certificates.
Current,y with my setup, I can run Kong with port 8000, but, I couldn't use it with port 8443.
When I access with ip:8443, it returns connection refused. Is it something related to the SSL certificate. If it's, how can I config the certificate properly?
Thank you!

@jl91 thank you! Indeed you have to set <IP_ADDRESS>:8443 ssl under KONG_PROXY_LISTEN, rather than KONG_PROXY_LISTEN_SSL. It worked for me even as I added a local self-signed certificate via Konga's certificates tab.
Seems like KONG_PROXY_LISTEN_SSL isn't used at all?

@jl91  you saved me

# ssl config
      KONG_SSL_CERT: /certs/certificate.crt
      KONG_SSL_CERT_KEY: /certs/certificate.key
      KONG_ADMIN_SSL_CERT: /certs/certificate.crt
      KONG_ADMIN_SSL_CERT_KEY: /certs/certificate.key
      KONG_SSL: "on"

@jl91 thanksss!!


upgrade operator-sdk to v1.1.0

Signed-off-by: Zhiwei Yin<EMAIL_ADDRESS>upgrade operator-sdk to v1.1.0 to fix null slice issue (https://github.com/operator-framework/operator-sdk/issues/4041)

/assign @qiujian16

/approve
/lgtm


Embedded viewer cornerstone canvas grows to infinity upon interaction

Description
We have embedded the viewer following instructions at https://docs.ohif.org/deployment/recipes/embedded-viewer.html . More specifically Installing OHIF viewer inside another react app described at the end of the page.
But when we use it and we load a series with a cornerstone viewport (doesn't seem to happen with Dicom Microscopy extension), which doesn't happen if OHIF viewer is launched standalone:

Initial viewport size is really small and doesn't take all ViewerMain area
Upon interaction (change of layout, change of browser size) the cornerstone canvas (all of them) grow vertically to infinity

Steps to reproduce & alternatives tested
I've setup a public repo with a simplified example of the OHIF viewer embedding  (using the installViewer approach) to reproduce this issue at: https://github.com/epetxepe/example-ohif-installviewer
Alternative 1:
I've been able to avoid this issue by changing extensions/cornerstone/src/OHIFCornerstoneViewport.js:234 with style={{ width: '612px', height: '256px', flex: '1' }} fixing the cornerstone canvas height & width, and building a modified OHIF-VIEWER package.
But this way, cornerstone canvas are fixed to a size that keeps the same with different layouts or browser window resize, which is not a solution.
Questions

Am I missing some configuration need for the OHIF viewer embedding installViewer approach?
Is it some kind of bug?
Could you tell me directions / hints on components to be debugged / revised?
Or confirm me if this could be something on cornerstone or react-cornerstone library?

It seems that when it's embedded within another react component it's not able to know what the height it should take so I'm using a workaround to set the height of the css of FlexBoxLayout set as vh (proportional to the browser window size) instead of 100% in ohif's code.

How do I fix this if I'm using @ohif/viewer extension inside another react app?

@epetxepe and @kevalnagda  I am using same thing in angular I am also facing same issue related to height. any solution on this?

Has anyone found out how to solve this error?

Echoing @kevalnagda's comment above. The OHIF embedded viewer has a locked problem.
If the FlexboxLayout component could be changed in the main source, could that be replicated to the embedded viewer package?

Bumped into the same issue!! The viewport is getting auto zoomed and not stopping unless the page is reloaded. Please let us know if any body has found a solution for this.


Make deduplication_on_engagement work with skip duplicates

Make deduplication_on_engagement work with skip duplicates, fixes #1002.

Is it possible to tirrger travis again? It had problems getting the branch from my fork.


[WIP] Streamz as input

Changes proposed in this pull request:

Creation of interfaces between skmultiflow.data and streamz.Source to make skmultiflow data generators as inputs to streamz.Stream(s)
[TODO] add methods for triggering partial_fit/predict on skmultiflow estimators

Note that this PR also deprecate some existing classes, in order to encourage usage of streamz as the default way of handling streaming
Checklist

[X] Code complies with PEP-8 and is consistent with the framework.
[ ] Code is properly documented.
[X] Tests are included for new functionality or updated accordingly.
[ ] Travis CI build passes with no errors.
[ ] Test Coverage is maintained (threshold is -0.2%).
[X] Files changed (update, add, delete) are in the PR's scope (no extra files are included).

This PR introduces new syntax
from streamz import Source
from skmultiflow.data import SEAGenerator
gen = SEAGenerator(random_state=1)
stream = Source.from_generator(gen, poll_interval=.5, batch_size=10) # pull 10 elements every 0.5 seconds
stream.sink(print)
stream.start() # printing data from the SEAGenerator

TODO : show syntax for partial_fit/predict

Travis fails due to the latest version of sklearn. I will update a temporary workaround as part of the other open PR. I will upload the actual fix later today.


Visualizing Neural Networks | Any Updates on GPU LSTM? | Adding onto a network

Comments
I'm not really having an issue with brain.js but I was just curious if there was a way to visualize a neural network like the image below.

I was also wondering if there's any news on training LSTMs with a GPU, if I recall I was told it was coming soon back in March and so far I've heard nothing, it has become a big issue as my datasets get larger and larger.
And finally, a while back I noticed an issue someone posted (#377) which I was also having and he wasn't able to get help so I am just going to add it onto this issue; When I train a network and save it to a JSON file I would like to be able to do network.fromJSON(); to load it then using that network, add more training on top of its existing training data since retraining everything with the old data takes forever without GPU acceleration (I'm sure it would still be an issue WITH GPU acceleration). Is this in any way possible, and if not, could it be added?

I'm not really having an issue with brain.js but I was just curious if there was a way to visualize a neural network like the image below.

RNN's get pretty big pretty quick.  Sometime back, when I was debugging the implementation, I wrote https://github.com/BrainJS/rnn-viewer, which is not anything like your image, but a way to visualize them.  Likely the code is a bit out of date, as it was a tool to fix what was not working yet.  Of which those issues were closed sometime back.

I was also wondering if there's any news on training LSTMs with a GPU, if I recall I was told it was coming soon back in March and so far I've heard nothing, it has become a big issue as my datasets get larger and larger.

It has been a bit longer than anticipated, and I ty for the prod, but it is under very active development.  I think the problem is the scope of v2 has grown over time.  I did go through all the issues in GPU.js, where the GPU implementation is being done, and have finally set a limit as to what is going into v2.  It stopped at bitwise operators, of all things.  As it was requested several times prior to the initial node proof of concept.
A couple of really big concepts finally made their way into GPU.js v2.  For example, I wanted to pull out a lot of the code that does type checking, so it could be done once, outside the kernel, rather than N lookups inside the kernel.  This lead to kernels being able to raise an event that asks for a kernel to recompile, and then cache that beside the existing kernel.
Then there was the big issue of float for loop handling not working in node on some GPU's, which lead to either upgrading Google Angle to the latest, or writing a complete type inference system, of the two, the latter was chosen.
Then there was returning array values from kernels, and as well multiple render targets, which is an absolute must for brain.js to have performant backpropagation.  This lead to having to learn and debug c++ and headlessgl, to add those parts, unit test them thoroughly, join their development team, and get it released.
Then there was breaking up the argument and constant handlers, so they reused the same code, and did the type checking to raise said events about kernels in the previous paragraph.
We have also added TONS more unit tests.  I believe we are nearing 20k assertions, testing the kernels from different angles, and ensuring all tests pass that are supported in Node, Chrome, Firefox, and Safari.
I think I could go on and on.  And I apologize for it taking so long.  The most important thing, is, I believe we are down to the wire, and the implementation will not be rushed, it will be right.
Once I cannot find anymore bugs in GPU.js, v2 will land, and I will take a proper look at all open issues for brain.  If I do find anymore bugs in GPU.js, I will add those unit tests, fix them, and continue iterating.  If anyone would like to join in the fun, they are invited to jump in.

Thanks for the response, I also forgot to mention I cannot get NeuralNetGPU to work on any of my PCs after I install gpu.js and have working code, it just says Warning: gpu not supported, falling back to cpu support not sure if this is a normal thing because of no proper GPU support but just thought I would ask anyways

it just says Warning: gpu not supported, falling back to cpu support not sure if this is a normal thing

It is for the time being, I'll get that code up to date soon however.

@robertleeplummerjr Any ETA of when NeuralNetworkGPU will be back up again? I am working on an easy to use genetic algorithm in brain.js to get some reinforcement learning tasks going. I have already made the algorithm in tensorflow.js and I am very excited to get it working in brain, but hesitant for the time being without GPU support. Thanks for your hard work and making this amazing lib!

I have NeuralNetworkGPU running now in the develop branch, and that is committed.  I'm waiting on a few things (some very exciting), including:

website redesign (essentially done)
travis-ci integration
automated tests through browserstack.com

and so I've finally reached a point I can continue work on brain.js!
You'll be seeing some activity in https://github.com/BrainJS/brain.js-cnn-integrity, which independently (and hackishly) tests brain.js against ConvNet.js, to ensure it's algorithms match up 100%.  After that is finished, then we finalize a few outstanding API designs, add tons of unit tests, and release.

I'll take a few minutes and look at the GPU and CPU versions of network.fromJSON(), I forgot to answer that sometime back.

That's all good to hear! Are GPU LSTMs being worked on or will they be done at a later time after all of this?

They are being worked on in tandem.

How does this look for a simple SVG visualization?  This is the default toSVG utility function with recurrent visualization shimmed (hacked) in.

lol, I just realized I have the wrong layers connected with recurrence.  Hey it is early!  When this makes it into the package, it'll be right guys.

Much cleaner!  Feedback welcomed.

Yeah, that looks really good

Looks damn sexy

Closing as it seems it will be available in next version.


Error checking version on iOS

Bug
Plugin Version:  1.1.2 and 2.0.0-beta.76
Platform: iOS
Device/Hardware: iPhone 6
Expected behavior
Getting the latest version should return a boolean
Actual behavior
Exception is thrown.
Error looking up app details in App Store. BundleIdentifier=<Removed for security reasons, but matches what is in appstoreconnect>
  at Plugin.LatestVersion.LatestVersionImplementation.LookupApp () [0x0017f] in <b9443c4023a448e79dd79a7c32c8f968>:0
  at Plugin.LatestVersion.LatestVersionImplementation.GetLatestVersionNumber () [0x00065] in <b9443c4023a448e79dd79a7c32c8f968>:0
  at Plugin.LatestVersion.LatestVersionImplementation.IsUsingLatestVersion () [0x00077] in <b9443c4023a448e79dd79a7c32c8f968>:0
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <624bcc4ce53347508a7b8fa821d78da4>:0
  at System.Json.JsonArray.get_Item (System.Int32 index) [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/src/Xamarin.iOS/external/corefx/src/System.Json/src/System/Json/JsonArray.cs:36
  at Plugin.LatestVersion.LatestVersionImplementation.LookupApp () [0x0011d] in <b9443c4023a448e79dd79a7c32c8f968>:0

Steps to reproduce the issue
try
{
    var latest = await CrossLatestVersion.Current.IsUsingLatestVersion();
}
catch (Exception x)
{
    return;
}

The same issue here, the reason is your app available only in limited region (in my case is Russian Federation), so there must be included country identifier beetwen "http://itunes.apple.com/" and "/lookup?bundleId={bundle identifier}", ill try make pull request, to solve issue.

I committed the pull request for this changes, but it still without any action about two month.

if it still bothering you, you can download my changed repository that i forked, open it in visual studio, build, get an output dll that you can use in your project.

Facing the same issue, when will it be merged?

I'm facing the same issue as well

Is this nuget package still supported?

Almost a year on this issue, when will be released that PR?

I got it ready yesterday but dealing with a failure in the CI pipeline. Once that is fixed it will roll out to Nuget.

Available as a pre-release nuget here: https://www.nuget.org/packages/Xam.Plugin.LatestVersion/2.1.0-beta.96


Improve pandora discovery RAM usage

I am quite concerned with this part in denovo racon: https://github.com/rmcolq/pandora/blob/12a08c5483c19fc12411e174970d31c86e842a2d/src/denovo_discovery/discover_main.cpp#L205-L206
This is a dictionary from loci names to the subreads that map to each locus, inferred by pandora map. This structure could get potentially very large, as we basically store a substring of every read that map to each locus (is just the region of the read that maps to that specific locus, but still...). There are potentially many better ways to store this info, but I also want to avoid premature optimisation, and just work on this if RAM is indeed an issue.
Originally posted by @leoisl in https://github.com/rmcolq/pandora/issues/303#issuecomment-1297228115

Thumbs up


some less naked returns

fix upcoming lint issues

Is it all? I think there were like 50+ errors.

just fixed the one from your pull report ... I'll update the toolink up ahead and check again

well let's merge this ... but yes there are way more

Yeah, let's see if that is enough to get the PR green. Otherwise, I could invite you to my fork so you can push directly to the branch.


add file name completion for the simple console

From<EMAIL_ADDRESS>on 2012-10-24T10:44:30Z
The explorer and project manager has the option to start a Console in the current directory.
This is helpful for instance to interfere with the OS or the VCS.
Please add the dos-console file name completion to it.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1178

From ccordoba12 on 2012-10-26T09:14:38Z
To what console? To the Python interpreter? or to the system terminal?

From pierre.raybaut on 2012-11-04T09:15:47Z
This is a very old request... help is still needed!
Status: Duplicate
Mergedinto: 306

From<EMAIL_ADDRESS>on 2012-10-26T10:09:27Z
The system terminal that can be opened from the project explorer on a folder


Decide on technical stack

Need to decide on the technology stack that will be used for the backend API

Going to use ZenHub for the backend


Fix android animation (#5)

Hey @BaseCase, I applied a fix for the following issue:
https://github.com/adorableio/react-native-animated-ellipsis/issues/5
The fix is based on the one provided by @tangnv here:
https://github.com/adorableio/react-native-animated-ellipsis/issues/5#issuecomment-419861129
I also change the npm postinstallscript to work off the prepare hook, as postinstall is outdated and won't work with direct installs github. prepare should work with both, see here:
https://github.com/npm/npm/issues/3055#issuecomment-304698029

@mcavaliere Thanks for this PR! @BaseCase is on vacation for the next week or so. I imagine he'll have some feedback after that time.

Hi @mcavaliere, thanks so much for taking the time to open this PR! I haven't been actively maintaining this project, so I appreciate your contribution :)  I'll try to find some time this week to test it out and get it merged/version bumped.

@BaseCase my pleasure, thanks! 👍

@mcavaliere Thanks again for the PR! I finally had a chance to test it out, and it looks great 👍

Thanks @BaseCase ! 🥃


Move from readdir_r to readdir

b/31256592
Fixes #1307
Relevant man pages:
https://linux.die.net/man/3/readdir
https://linux.die.net/man/3/errno

Thanks Fredrik!
I had interpreted from https://linux.die.net/man/3/errno that if my call doesn't return -1 for success, I couldn't just leave errno at 0:

Valid error numbers are all nonzero; errno is never set to zero by any system call or library function.

For some system calls and library functions (e.g., getpriority(2)), -1 is a valid return on success. In such cases, a successful return can be distinguished from an error return by setting errno to zero before the call, and then, if the call returns a status that indicates that an error may have occurred, checking to see if errno has a nonzero value.

But I trust your judgment.
Made the changes. Thanks a lot!

No worries, I read up some more and found http://pubs.opengroup.org/onlinepubs/009695399/functions/readdir.html and my questions are answered. This is the recommended way to use readdir, and I did add a comment to explain.

@roubert Done, thanks!
@hagbard ready for final look


make more es6y

i didn't wanna comment on all the vars, but if you wanna switch those out to any lets or consts. Looks good though 👍


Need a documented way to connect via unix socket

I haven't found any way to use peer auth with this script without modifying it to omit 'host=' parameter.

Hello
You can use standard libpq behavior and specify unix socket directory as hostname, -h /tmp (postgresql from scratch) or -h /var/run/postgresql (debian/ubuntu packages). (check your unix_socket_directories postgresql setting)
I will keep this issue open. Possible I need change default connect method to unixsock, like psql and other libpq software.

Hi
I changed default host  and port to use libpq defaults. So by default tool will use unixsock


Better proxy support

Hi,
I am trying to use Firefox with proxy to automate some tasks.
I have tried to prepare FirefoxProfile with proxy settings, but has no effect:
        $firefox = DesiredCabapibilities::firefox();
        $profile->setPreference('network.proxy.type', 1);
        $profile->setPreference('network.proxy.http','<IP_ADDRESS>');
        $profile->setPreference('network.proxy.http_port','8123');
        $profile->setPreference('network.proxy.ssl','<IP_ADDRESS>');
        $profile->setPreference('network.proxy.ssl_port','8123');
        $profile->setPreference('network.proxy.ftp','<IP_ADDRESS>');
        $profile->setPreference('network.proxy.ftp_port','8123');
        $firefox->setCapability(FirefoxDriver::PROFILE, $profile);

This has no effect, I still connect directly.
I see that there is WebDriverCapabilityType::PROXY constant, but there is no documentation about structure of the value and there is no Proxy class like in java drivers.
After a long time I have found the solution:
 $this->browser->setCapability(
            WebDriverCapabilityType::PROXY,
            array(
                'proxyType' => 'manual',
                'ftpProxy' => '<IP_ADDRESS>:8123',
                'httpProxy' => '<IP_ADDRESS>:8123',
                'sslProxy' => '<IP_ADDRESS>:8123',
                'noProxy' => '<IP_ADDRESS>, <IP_ADDRESS>/24'
            )
        );

Please add a Proxy class similar to such class in other language bindings.

And just as I submitted this issue I have found the example on wiki.


SVCB and HTTPS

Useful references:

The draft: https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-03.html
HOWTO add new RR types in NSD: https://blog.nlnetlabs.nl/howto--add-new-rrtypes-to-nsd/
HOWTO add new rdata types in NSD: https://lists.nlnetlabs.nl/pipermail/nsd-users/2012-July/001480.html
Example SVCB implementation in ldns: https://github.com/NLnetLabs/ldns/commit/34da3b2fa4

I tried the master branch after https://github.com/NLnetLabs/nsd/commit/1c1958473f8e8e138514658b7ff0569bdacf00b6
SVCB and HTTPS Support works so far, NSD could serve (my simple) records.
But nsd-checkzone still fail to understand these records.

#175 says that it works.
In my own setup, it also works.

Thanks for the reports @andreasschulze and @Glandos! I think these problems have been long fixed, but I'll check before releasing the final 4.10.0 as the new zone parser is now integrated.

Both RTYPEs are properly supported. Closing this issue.


Modify '%V' example

The example of \%V in help-doc does not work.
vim -Nu NONE
set wrapscan
" input 'foo123bar'
normal ifoo123bar
" set visual area 'foo123bar'
normal 0ve
/\%Vfoo.*bar\%V

E486: Pattern not found: \%Vfoo.*bar\%V
but pattern /\%Vfoo.*ba\%Vr matches.
NOTE: Actually, \%V matches the following cases:

the next char of \%V is in Visual area; \%Vameans a is in Visual area
otherwise (\%V is a trailing of the pattern), works as if the next char is . (i.e. \%V.)

Other zero-width atoms also behave the same way.

i think this can be closed now as it is included in 214641f77df6f318a4b3a0b09723c1985


Invalid epub

Current demo works with some ereaders. Fails with KoReader. Also fails EPUBCheck v5.1.0
ERROR(PKG-006): My First Epub.epub//...../My%20First%20Epub.epub(-1,-1): Mimetype file entry is missing or is not the first file in the archive.
Validating using EPUB version 2.0.1 rules.
ERROR(RSC-005): My First Epub.epub/OEBPS/content.opf(2,61): Error while parsing file: element "package" missing required attribute "unique-identifier"
ERROR(OPF-048): My First Epub.epub/OEBPS/content.opf(2,61): Package tag is missing its required unique-identifier attribute and value.
ERROR(OPF-054): My First Epub.epub/OEBPS/content.opf(10,34): Date value "07-27-2023" is not valid as per http://www.w3.org/TR/NOTE-datetime:07-27-2023 class java.lang.IllegalArgumentException MONTH.
ERROR(RSC-005): My First Epub.epub/OEBPS/content.opf(16,69): Error while parsing file: value of attribute "id" is invalid; must be an XML name without colons
ERROR(RSC-005): My First Epub.epub/OEBPS/content.opf(22,25): Error while parsing file: value of attribute "idref" is invalid; must be an XML name without colons
ERROR(OPF-030): My First Epub.epub/OEBPS/content.opf(-1,-1): The unique-identifier "null" was not found.
ERROR(RSC-005): My First Epub.epub/OEBPS/toc.ncx(15,36): Error while parsing file: value of attribute "id" is invalid; must be an XML name without colons
ERROR(HTM-004): My First Epub.epub/OEBPS/toc.html(-1,-1): Irregular DOCTYPE: found "", expected "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">".
ERROR(RSC-005): My First Epub.epub/OEBPS/toc.html(2,7): Error while parsing file: elements from namespace "" are not allowed
FATAL(RSC-016): My First Epub.epub/OEBPS/toc.html(15,5): Fatal Error while parsing file: The element type "hr" must be terminated by the matching end-tag "</hr>".
ERROR(HTM-004): My First Epub.epub/OEBPS/0.xhtml(-1,-1): Irregular DOCTYPE: found "", expected "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">".
ERROR(RSC-005): My First Epub.epub/OEBPS/0.xhtml(4,9): Error while parsing file: element "head" incomplete; missing required element "title"
ERROR(RSC-005): My First Epub.epub/OEBPS/0.xhtml(6,26): Error while parsing file: element "a" not allowed here; expected element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-026): My First Epub.epub/OEBPS/0.xhtml(11,31): URL "/wiki/Main_Page" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
ERROR(RSC-005): My First Epub.epub/OEBPS/0.xhtml(12,90): Error while parsing file: element "img" missing required attribute "alt"
ERROR(RSC-026): My First Epub.epub/OEBPS/0.xhtml(37,39): URL "/wiki/Main_Page" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
ERROR(RSC-026): My First Epub.epub/OEBPS/0.xhtml(44,48): URL "/wiki/Wikipedia:Contents" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
ERROR(RSC-026): My First Epub.epub/OEBPS/0.xhtml(51,51): URL "/wiki/Portal:Current_events" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
ERROR(RSC-026): My First Epub.epub/OEBPS/0.xhtml(58,44): URL "/wiki/Special:Random" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
ERROR(RSC-026): My First Epub.epub/OEBPS/0.xhtml(65,45): URL "/wiki/Wikipedia:About" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
ERROR(RSC-005): My First Epub.epub/OEBPS/0.xhtml(155,43): Error while parsing file: value of attribute "id" is invalid; must be an XML name without colons
ERROR(RSC-005): My First Epub.epub/OEBPS/0.xhtml(300,17): Error while parsing file: element "ul" incomplete; missing required element "li"
FATAL(RSC-016): My First Epub.epub/OEBPS/0.xhtml(2486,43): Fatal Error while parsing file: The entity "mdash" was referenced, but not declared.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(11,31): Referenced resource "wiki/Main_Page" could not be found in the EPUB.
ERROR(RSC-008): My First Epub.epub/OEBPS/0.xhtml(12,90): Referenced resource "OEBPS/images/09d8c6ac-4a4a-47ef-ae01-0bdf1ac0acd2..png" is not declared in the OPF manifest.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(37,39): Referenced resource "wiki/Main_Page" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(44,48): Referenced resource "wiki/Wikipedia:Contents" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(51,51): Referenced resource "wiki/Portal:Current_events" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(58,44): Referenced resource "wiki/Special:Random" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(65,45): Referenced resource "wiki/Wikipedia:About" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(95,43): Referenced resource "wiki/Help:Contents" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(102,47): Referenced resource "wiki/Help:Introduction" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(109,56): Referenced resource "wiki/Wikipedia:Community_portal" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(116,51): Referenced resource "wiki/Special:RecentChanges" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(123,58): Referenced resource "wiki/Wikipedia:File_upload_wizard" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(155,43): Referenced resource "wiki/Special:Search" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(177,78): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(184,74): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(204,80): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(213,76): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(227,43): Referenced resource "wiki/Help:Introduction" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(236,51): Referenced resource "wiki/Special:MyContributions" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(243,42): Referenced resource "wiki/Special:MyTalk" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(277,34): Referenced resource "wiki/EPUB" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(284,39): Referenced resource "wiki/Talk:EPUB" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(325,38): Referenced resource "wiki/EPUB" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(332,67): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(339,70): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(355,60): Referenced resource "wiki/Special:WhatLinksHere/EPUB" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(362,66): Referenced resource "wiki/Special:RecentChangesLinked/EPUB" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(369,62): Referenced resource "wiki/Wikipedia:File_Upload_Wizard" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(376,54): Referenced resource "wiki/Special:SpecialPages" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(383,72): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(390,67): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(397,130): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(420,114): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(427,69): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(460,34): Referenced resource "wiki/EPUB" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(467,63): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(474,66): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(509,45): Referenced resource "wiki/Electronic_article" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(519,33): Referenced resource "wiki/E-book" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(522,38): Referenced resource "wiki/File_format" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(526,41): Referenced resource "wiki/File_extension" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(538,35): Referenced resource "wiki/E-reader" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(542,45): Referenced resource "wiki/Technical_standard" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(546,65): Referenced resource "wiki/International_Digital_Publishing_Forum" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(550,37): Referenced resource "wiki/Open_eBook" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(555,47): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(562,52): Referenced resource "wiki/Book_Industry_Study_Group" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(567,34): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(572,32): Referenced resource "wiki/XHTML" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(576,30): Referenced resource "wiki/XML" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(581,34): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(594,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(604,37): Referenced resource "wiki/Open_eBook" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(609,34): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(615,50): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(623,34): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(629,53): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(634,33): Referenced resource "wiki/MathML" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(639,34): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(645,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(650,31): Referenced resource "wiki/WOFF" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(654,31): Referenced resource "wiki/SFNT" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(659,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(664,31): Referenced resource "wiki/HTML" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(668,30): Referenced resource "wiki/CSS" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(673,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(680,65): Referenced resource "wiki/International_Digital_Publishing_Forum" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(684,52): Referenced resource "wiki/World_Wide_Web_Consortium" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(689,35): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(695,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(708,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(719,50): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(732,50): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(744,50): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(754,45): Referenced resource "wiki/Zip_(file_format)" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(759,50): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(767,32): Referenced resource "wiki/XHTML" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(771,33): Referenced resource "wiki/DTBook" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(775,53): Referenced resource "wiki/DAISY_Digital_Talking_Book" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(779,30): Referenced resource "wiki/CSS" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(783,30): Referenced resource "wiki/XML" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(787,44): Referenced resource "wiki/Table_of_contents" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(791,35): Referenced resource "wiki/Metadata" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(795,44): Referenced resource "wiki/Zip_(file_format)" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(808,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(818,46): Referenced resource "wiki/Internet_media_type" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(824,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(829,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(843,46): Referenced resource "wiki/Internet_media_type" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(849,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(854,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(861,52): Referenced resource "wiki/Portable_Network_Graphics" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(865,31): Referenced resource "wiki/JPEG" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(869,30): Referenced resource "wiki/GIF" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(873,51): Referenced resource "wiki/Scalable_Vector_Graphics" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(877,46): Referenced resource "wiki/Internet_media_type" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(882,49): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(893,34): Referenced resource "wiki/Unicode" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(897,32): Referenced resource "wiki/UTF-8" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(901,33): Referenced resource "wiki/UTF-16" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(906,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(912,49): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1091,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1102,49): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1113,35): Referenced resource "wiki/Metadata" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1126,49): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1139,44): Referenced resource "wiki/IETF_language_tag" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1147,44): Referenced resource "wiki/IETF_language_tag" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1152,31): Referenced resource "wiki/ISBN" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1156,30): Referenced resource "wiki/URL" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1165,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1170,35): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1186,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1201,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1216,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1221,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1692,44): Referenced resource "wiki/Table_of_contents" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1696,53): Referenced resource "wiki/DAISY_Digital_Talking_Book" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(1700,86): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1719,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1724,44): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(1744,44): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2053,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2064,44): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2076,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2087,49): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2178,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2189,35): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2197,50): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2235,54): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2242,34): Referenced resource "wiki/MathML" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2246,34): Referenced resource "wiki/Bitmap" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2250,52): Referenced resource "wiki/Scalable_Vector_Graphics" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2258,49): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2264,61): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2273,42): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2280,63): Referenced resource "wiki/International_Standards_Organization" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2284,68): Referenced resource "wiki/International_Electrotechnical_Commission" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2289,48): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2296,63): Referenced resource "wiki/International_Standards_Organization" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2300,68): Referenced resource "wiki/International_Electrotechnical_Commission" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2305,53): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2318,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2329,35): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2335,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2340,30): Referenced resource "wiki/CSS" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2345,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2358,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2369,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2374,31): Referenced resource "wiki/WebP" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2378,46): Referenced resource "wiki/Opus_(audio_format)" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2383,35): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2396,75): Referenced resource "w/index.php" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2409,47): Referenced resource "wiki/Reflowable_document" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2417,36): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2423,56): Fragment identifier is not defined.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2430,32): Referenced resource "wiki/HTML" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2434,43): Referenced resource "wiki/Raster_graphics" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2438,43): Referenced resource "wiki/Vector_graphics" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2442,36): Referenced resource "wiki/Metadata" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2446,31): Referenced resource "wiki/CSS" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2461,37): Referenced resource "wiki/Font_size" could not be found in the EPUB.
ERROR(RSC-007): My First Epub.epub/OEBPS/0.xhtml(2468,34): Referenced resource "wiki/MathML" could not be found in the EPUB.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2472,36): Fragment identifier is not defined.
ERROR(RSC-012): My First Epub.epub/OEBPS/0.xhtml(2480,36): Fragment identifier is not defined.

Check finished with errors
Messages: 2 fatals / 187 errors / 0 warnings / 0 infos

EPUBCheck completed

NOTE this is with fix applied from https://github.com/wcember/pypub/pull/16

2 smaller tests:
single chapter
Test case
# demo for https://github.com/wcember/pypub

import pypub

my_first_epub = pypub.Epub('helloworld')
#my_first_chapter = pypub.create_chapter_from_string('Hello World')  TODO retest and define behavior, default to empty title? existing code appears to default to 'Ebook Chapter'
#my_first_chapter = pypub.create_chapter_from_string('Hello World', title='Hello World Chapter') TODO retest - bug, why is this not autowrapped in a paragraph tag by pypub/bs4? htmltidy support?
my_first_chapter = pypub.create_chapter_from_string('<p>Hello World</p>', title='Hello World Chapter')
my_first_epub.add_chapter(my_first_chapter)
my_first_epub.create_epub('OUTPUT_DIRECTORY')

epub check output
ERROR(PKG-006): helloworld.epub//C:/code/py/pypub/pypub_wcember_original_upstream/OUTPUT_DIRECTORY/helloworld.epub(-1,-1): Mimetype file entry is missing or is not the first file in the archive.
WARNING(PKG-014): helloworld.epub//C:/code/py/pypub/pypub_wcember_original_upstream/OUTPUT_DIRECTORY/helloworld.epub(-1,-1): The EPUB contains empty directory "OEBPS/images/".
Validating using EPUB version 2.0.1 rules.
ERROR(RSC-005): helloworld.epub/OEBPS/content.opf(2,61): Error while parsing file: element "package" missing required attribute "unique-identifier"
ERROR(OPF-048): helloworld.epub/OEBPS/content.opf(2,61): Package tag is missing its required unique-identifier attribute and value.
ERROR(OPF-054): helloworld.epub/OEBPS/content.opf(10,34): Date value "07-28-2023" is not valid as per http://www.w3.org/TR/NOTE-datetime:07-28-2023 class java.lang.IllegalArgumentException MONTH.
ERROR(RSC-005): helloworld.epub/OEBPS/content.opf(16,69): Error while parsing file: value of attribute "id" is invalid; must be an XML name without colons
ERROR(RSC-005): helloworld.epub/OEBPS/content.opf(22,25): Error while parsing file: value of attribute "idref" is invalid; must be an XML name without colons
ERROR(OPF-030): helloworld.epub/OEBPS/content.opf(-1,-1): The unique-identifier "null" was not found.
ERROR(RSC-005): helloworld.epub/OEBPS/toc.ncx(15,36): Error while parsing file: value of attribute "id" is invalid; must be an XML name without colons
ERROR(HTM-004): helloworld.epub/OEBPS/toc.html(-1,-1): Irregular DOCTYPE: found "", expected "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">".
ERROR(RSC-005): helloworld.epub/OEBPS/toc.html(2,7): Error while parsing file: elements from namespace "" are not allowed
FATAL(RSC-016): helloworld.epub/OEBPS/toc.html(15,5): Fatal Error while parsing file: The element type "hr" must be terminated by the matching end-tag "</hr>".
ERROR(RSC-005): helloworld.epub/OEBPS/0.xhtml(3,9): Error while parsing file: element "head" incomplete; missing required element "title"

Check finished with errors
Messages: 1 fatal / 11 errors / 1 warning / 0 infos

EPUBCheck completed

multiple chapters
# demo for https://github.com/wcember/pypub

import pypub

my_first_epub = pypub.Epub('helloworldchapters')
my_first_epub.add_chapter(pypub.create_chapter_from_string('<p>Hello World</p>', title='Hello World Chapter'))
my_first_epub.add_chapter(pypub.create_chapter_from_string('<p>The middle bit</p>', title='Middle Chapter'))
my_first_epub.add_chapter(pypub.create_chapter_from_string('<p>Goodbye World</p>', title='Goodbye World Chapter'))
my_first_epub.create_epub('OUTPUT_DIRECTORY')

Fixed by https://github.com/clach04/pypub/commit/274a9761203059c03aa06de4d6dd9b0e44b8694d


Use current modsecurity base image in apache Dockerfile

Use current modsecurity base image, to enable environment variable PROXY_ERROR_OVERRIDE from the latest release

LGTM. We are merging images anyway.


[FEATURE] Auto tagging wallpaper images with resolution

Is your feature request related to a problem? Please describe.
 Recently (at least in my time on the unixporn discord, ~7 months now I believe) There is constant arguing (some would call it debate/discussion) about enforcing tags on images in #wallpapers. In my time I've even seen quite a few members of our discord get badgered over this.
One of the reasons for people bringing it up so much seems to be that resolution seems to be very important to some people. Its even important to me, although, I'm not quite getting an image that goes on my desktop for however long, from discord.
Proposed feature
Well, after bringing up said solution in #wallpapers, people seemed to want me to make an issue on this repository. I propose that whenever an image is posted in #wallpapers, the bot could automatically scan the image for resolution, and output it into the chat.
Another idea I had is there could be thresholds for images. so if an image is below a certain size, output wouldn't be posted, and it could keep messages clean, or you could flag it as a tiling wallpaper (I don't know) or something.
I'm not sure how the bot would work for links, maybe you could do some embed scanning or some magic, I'm sure there is a way (or not :p).
Additional context
Whatever the case this seems like a good solution to the problem, and I cant really imagine anyone having a problem with this. that's it, talk to you later.

For context: The reason why this was suggested is because I was persistent that "no, forcing tags (including resolution tags) is an additional step, and is therefore annoying"


Using multiple global css files

📚 Documentation
I'm not sure how to use multiple global CSS files. Similar to Docusaurus v1, I wish to split up my CSS into multiple global CSS files. There isn't any information about this specific use case in the documentation.
My CSS files are difficult to separate in different modules, so using CSS modules is out of the question.
The other options is to import all my CSS files in the custom.css file using @import. I have more than 30 CSS files, so this would be verbose.

Hi,
Why do you think exactly it would be more convenient to maintain a list of css files in js config, instead of CSS ? At some point you have to define the files to include.
The theme classic offer you the ability to register a single css file. We could improve and allow to pass an array of css files instead but I feel it's unnecessary.
Nothing prevents you from writing your own local site plugin that does exactly what you want
https://v2.docusaurus.io/docs/lifecycle-apis/#getclientmodules
module.exports = function mySitePlugin(context, options) {
  return {
    name: "my-site-plugin",
    getClientModules() {
      return ["css1.css", "css2.css", "css3.css"];
    }
  };
};


DBZ-321 Move snapshot Dockerfile to a separate directory

Thanks, @jpechane! Can you add a note to the RELEASE.md file in the main repo on updating the versions given in this Docker file?

Ah. btw. can we always put a link to the JIRA issue into the PR description? That way it's a bit easier to navigate. Thanks!


[ru] Delete Localization READMEs section in localized README

Description
ref. https://github.com/kubernetes/website/pull/47763#issuecomment-2400322169

Delete Localization READMEs section in localized README

Now, these links don't work well

/kind cleanup
Issue

Closes: #

/assign @shurup
for approval

Sounds good, thank you!
/lgtm
/approve


Multiple TSLint rules fail with non-null assertions

Bug Report

TSLint version: 5.10.0
TypeScript version: 2.7.2
Running TSLint via: Angular CLI -> Node.js API

TypeScript code being linted
dupLoginid!: Observable<boolean>;

invalidFirstName!: Observable<boolean>;

invalidLastName!: Observable<boolean>;

with tslint.json configuration:
"member-ordering": [
  true,
  {
    "order": [
      "static-field",
      "instance-field",
      "static-method",
      "instance-method"
    ]
  }
],
"semicolon": [
  true,
  "always"
],
"whitespace": [
  true,
  "check-branch",
  "check-decl",
  "check-operator",
  "check-separator",
  "check-type"
]

Actual behavior
TSLint complains about:

"missing whitespace (whitespace)" before the !s
"Missing semicolon (semicolon)" after the !s
"Declaration of instance field not allowed after declaration of instance method. Instead, this should come at the beginning of the class/interface. (member-ordering)" on all but the first attribute.

Expected behavior
No TSLint complaints.

@Kokogino I'm not able to reproduce these errors locally with TSLint 5.11. ! were pretty new when you posted this issue, perhaps your tooling was using an older version of TypeScript at the time?


Incorrect error code returned for disabled user sign-in.

Step 2: Describe your environment

Android device: Pixel 3
Android OS version: 10
Google Play Services version: 19.8.31
Firebase/Play Services SDK version: core:17.2.1, auth:19.2.0
FirebaseUI version: 6.0.2

Step 3: Describe the problem:
When signing in by using the account of a deactivated user, IdpResponse returns an error code of 5, yet error code for ERROR_USER_DISABLED in ErrorCodes.java has a value of 12, while code 5 means ANONYMOUS_UPGRADE_MERGE_CONFLICT
https://github.com/firebase/FirebaseUI-Android/blob/4b06d16e77ae41964edcd37953dc0c97c6d271ed/auth/src/main/java/com/firebase/ui/auth/ErrorCodes.java#L72
Steps to reproduce:
Deactivate a user in the Firebase Console, try to sign in with that user by using FirebaseUI-Android
Observed Results:
IdpResponse.fromResultIntent(data).getError().getErrorCode() returns a value of 5
The message of .getError().toString() is "com.firabase.ui.auth.FirebaseUiException: User account merge conflict"
Expected Results:
IdpResponse.fromResultIntent(data).getError().getErrorCode() returns a value of 12
Relevant Code:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (requestCode == RC_SIGN_IN) {
      final IdpResponse response = IdpResponse.fromResultIntent(data);
      if (resultCode == RESULT_OK) {
          final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
          user.getIdToken(false).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
              @Override public void onComplete(@NonNull Task<GetTokenResult> task) {
                  MyFirebaseManager.analyzeUser("on_activity_result", user, task, response.isNewUser());
              }
          });
      }
      else {
          // Sign in failed. If response is null the user canceled the
          // sign-in flow using the back button. Otherwise check
          // response.getError().getErrorCode() and handle the error.
          // ...
          if (response == null) {
              MyFirebaseManager.signInCancelled();
          }
          else {
              FirebaseUiException thing = response.getError();
              MyFirebaseManager.signInFailed(response.getError().getErrorCode()); // <----
          }
      }
   }
}

@danielfaust thanks for reporting this!  Sorry for the delayed response, I was out for the holidays.  This sounds like a bug.

The fix for this issue has been released in version 6.2.1


Hydration error on dates

Link to reproduction
No response
Payload Version
beta
Node Version
18
Next.js Version
15.0.0-rc.0
Describe the Bug
On i.e. this URL: http://localhost:3000/admin/collections/users?limit=10
Causes an hydration error

Reproduction Steps
Create fresh payload project with beta
Adapters and Plugins
No response

I've not been able to reproduce this on the latest beta version and a supported version of node.
I'll gladly reopen this issue if there's a reproduction.

Yeah I can see it now, makes sense @jancbeck

Will be fixed in the next beta release


Available languages should not be translated

I added your bundle in my project and it works perfectly.
I noted that languages displayed in the switcher are translated into the current language.

английский
немецкий
русский
японский

Guess which one is the best for you!
I really think that languages should be displayed into its own language, so the default template of the switcher should use locale_target_language instread of locale_current_language.

English
Deutsch
Français
русский
日本語

It would be greatful to have an option to control this behaviour.

this is more or less prepared in getTargetInformations. but the template is using locale_current_language. i think what would make most sense is to provide another template and document to configure that other template to get the languages in locale_target_language.

Yes this is easy to integrate because informations are correctly sent to the template.
Another template could be a good idea, but what I mean is that this new template should be the default one.
{# Resources/views/Switcher/targer_languages_switcher_links.html.twig #}

Switch to :

    {% for locale in locales %}

            {{ locale.locale_target_language }}

    {% endfor %}

IMO we should just provide that template (what you propose looks correct
to me) and document things.
changing the default is a BC break and could surprise the users. we
should only do that when we bump to a version 2.0 of this bundle.

It is a long time ago I wrote the switcher.
IMO every website will need a different template as well for design purposes than for the locale display, that's why I provided the both possibilities as template variables https://github.com/lunetics/LocaleBundle/blob/master/Switcher/TargetInformationBuilder.php#L121
In fact, the template available could be empty and you would need to override it, Symfony makes it very easy to override the template. I don't see a reason to provide multiple languages in the library.

i agree. an empty template would not be a good idea though, having something to quickly get going seems good to me.
maybe the documentation could be more explicit about this?

Yeah, by empty I was meaning don't look at it as final solution. I'll update the docs about it.


BanManager is incompatible with reverse-proxying and load balancing

If someone wished to setup a reverse proxy in front of Agora, it would probably come crashing as soon as the BanManager would be involved, as it would end up banning the proxy.
I suggest that we had a (configured) whitelist (we need a whitelisting mechanism for #1674 anyways) and handle https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For and https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded correctly.

Suggested header fields are only for HTTP, since we're moving towards to a RPC (and DNS on registry) based communication those fields still would not be enough. There is a newer protocol called Proxy Protocol that we can start to support. This protocol will still work with HTTP communications since it covers TCP communication basically.
In addition to that, we should provide a documentation about putting Agora behind a proxy to aid users about some configuration fields.

PR #2863 implements a solution for RPC connections inside Agora. Since we have a HTTP interface available also this needs to be addressed first, because we're using HTTP interface through generated REST API. If this also gets addressed, solution within RPC is not needed.


rclone rmdir doesn't remove directory

attempted 'rclone rmdir' on a acd mount.  The directory appears to delete, but after a period of time it appears again by running a ls command.  The directory is empty
rclone -V
rclone v1.34-67-g4428615β

Can you write a sequence of commands to Replicate please.

cd to acd.  Tried the following commands.
rm -rf "name"
rclone rmdir "name"
Both of these command show the directory gone after performing a 'ls.'  After a short while, when I run a "ls" command again, the previously deleted directory reappears.

I'm unable to replicate this.
Can you paste the command line you are using?
Can you cut and paste (or screenshot) a terminal session where you replicate the problem?
Thanks
Nick

Can you also do rclone delete remote:path/to/dir and see if that works? I also cannot reproduce this.
Thanks.

Same here. This behavior exists on Ubuntu and macOS Sierra for me.
Reproduced using v1.35 on macOS Sierra. gdenc mount
debug.txt
is google drive using rclone crypt
rclone mount gdenc:/ ~/gdenc > ~/debug.txt
rclone mkdir gdenc:/test
rclone mkdir gdenc:/test/dir1test

Delete dir1test using Finder

Wait a few minutes for good measure

Folder still deleted per Finder view

rclone lsd gdenc:/test/

Verbose output from mount attached
Note that unmounting and then remounting shows the "deleted" folder
I hope this is helpful

Note that the same behavior exists with non-encrypted google drive mount as well.

Ah, I see what happened I think....
If in your test you reverse the order in the setup
rclone mkdir gdenc:/test
rclone mkdir gdenc:/test/dir1test

rclone mount gdenc:/ ~/gdenc > ~/debug.txt

do you see the same effect?

Apologies, I don't understand the directions entirely. I should clarify that I used two different terminal windows for the original steps, one for the mount and another for the non-mount commands.
I followed the steps from your last comment:
rclone mkdir gdenc:/test
rclone mkdir gdenc:/test/dir1test
rclone mount gdenc:/ ~/gdenc > ~/debug.txt

Use Finder to delete dir1test
Open another terminal window and issue
rclone lsd gdenc:/test

The directory, dir1test, shows with that command.
Of note, it does reappear in Finder as well after a while (close Finder .. wait a while, reopen the gdenc mount such that Finder refreshes.

I've managed to work out what is going on - it was a missing bit of functionality from rclone mount.  Here is a beta whch should work
http://beta.rclone.org/v1.35-18-g35a6436/ (uploaded in 15-30 minutes)
Please re-open if it doesn't!


[Bug]: onUpdate kept firing even when location is off

Mapbox Implementation
Mapbox
Mapbox Version
10.8.1
Platform
iOS
@rnmapbox/maps version
10.0.0-beta.47
Standalone component to reproduce
<UserLocation
animated={false}
renderMode={'native'}
onUpdate={()=> console.log("track motion!!")}
showsUserHeadingIndicator={true}
minDisplacement={100}
visible={true}
>

Observed behavior and steps to reproduce
Scenario 1 (Pass):
When the iphone is placed still and location service is on, there is no onUpdate firing
Scenario 2 (Bug):
When moving the iphone (with nearly zero displacement) and location service is ON, onUpdate kept firing when moving the iphone
Scenario 3 (Bug):
When moving the iphone (with nearly zero displacement) and location service is OFF, onUpdate kept firing when moving the iphone
Expected behavior
onUpdate should not associated to the iphone motion and restricted by the minDisplacement
Notes / preliminary analysis
No response
Additional links and references
No response

Please provide a full component

This should be addressed in later betas, let me know if it's still happens


Firefox addon is missing

When clicking on the link for the Firefox addon, here: https://github.algolia.com/ you get an Oops! We can’t find that page.

Was the addon intentionally removed? If this project is defunct then it would seem sensible to update the README or simply set the repo to read only. I hope there is a Firefox addon though!

Looking forward to it.

What's the status on this @rayrutjes?

because the AddOn is realy
a awesome usecase, this question here:

somebody lucky installing the xpi directly?
somebody  find a alternative away in the dark grounds  ;) ....?


Is this normal?

Is this the most simple and common way of using ADO.NET in applications? I am from VBA programming and will convert some of our applications to SQL server and .NET. I'm initially thinking of using linked tables instead of stored procedure, data readers, and data tables.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a0e2e854-d2d8-8ec2-ae41-beee6636fae3
Version Independent ID: 2c1c8dae-ea87-e7a0-f0eb-7bc0b775f8d5
Content: Create a simple data application by using ADO.NET in Visual Studio - Visual Studio
Content Source: docs/data-tools/create-a-simple-data-application-by-using-adonet.md
Service: unspecified
Product: visual-studio-dev15
GitHub Login: @gewarren
Microsoft Alias: gewarren

@EvanAnthony Thank you for the thoughtful question. May I suggest that you ask your question on Stack Overflow instead? I do not know if this is the most common way of using ADO.NET in applications, and it seems like a good "crowd sourcing" question.