Theme Component Scaffolding

Theme Components were introduced in 0.42 with https://github.com/gohugoio/hugo/issues/4467. Running hugo new -h on the 0.42.1 CLI produces the following available commands:
site        Create a new site (skeleton)
theme       Create a new theme

I would like to propose a new scaffolding for theme components called component or, if it makes more sense, a flag or subcommand for theme to produce a minimum viable theme component.

a minimum viable theme component.

That is currently very subjective. One static folder with a file is a component.

Per the docs:

Also note that a component that is part of a theme can have its own configuration file, e.g. config.toml. There are currently some restrictions to what a theme component can configure:

params (global and per language)
menu (global and per language)
outputformats and mediatypes

So I was thinking MVP is a theme new with a config file containing the above bullet items under comment.

I'll close this for now as a nice to have. Please feel free to reopen if it interests you Mr Bep.


[Bug]: if scripts in a page using 'debugger' , page.goto will waiting all the time, how to solve it?

Bug description
Steps to reproduce the problem:
I use page.goto(url, {timeout:20000, waitUntil: 'networkidle0'}) or page.waitForTimeout to load a page, if there is a 'debugger' statement in js in the page, the page.goto statement  will  waiting all the time , event if the waiting time is already over the 'timeout' time.
how can I solve this problem?
for example:

tttt

Puppeteer version
15
Node.js version
16
npm version
8
What operating system are you seeing the problem on?
Windows
Relevant log output
No response

@libofei2004 I am unable to reproduce. Are you running Puppeteer with DevTools open or in some other way enable the Debugger domain in CDP? https://chromedevtools.github.io/devtools-protocol/tot/Debugger/

@OrKoN  DevTools  is not open in my code. Is there any other way to enable the Debugger? I did nothing about it.

I use this page to test.

In headless:false mode, the chrome has loaded and show the page completely.

But my programme  is still waiting all the time.

@libofei2004 could you please share the entire program (with the test HTML file) to reproduce the issue? you can upload multiple files to gist.github.com and share the URL here.

@OrKoN You mind me! my programme is too big,  I simplify its main process and find what was wrong.
this is the code :
page.on('response', async (httpResponse) => {
......
fs.mkdirSync(dir, {recursive: true},(err)=>{
console.log("mkdir="+err);
}
});
when mkdirSync is running, dir sometimes has invalid character，such as “:”, so the process  is not going on.
I have 2 questions:

why a Sync statement mkdirSync  in page.on('response') event can stop main process ?
why (err)=>{ } event  do not trigger when the dir is wrong?

@libofei2004 perhaps you could create a minimal reproduction to demonstrate the issue? Otherwise, I am unable to reproduce.

@OrKoN Thanks a lot, I have solved this issue，its not cauesd by debugger,  An error  is caused by doing fs.mkdirSync in response event because of invalid character  in filepath.
error code is:
page.on('response', async (httpResponse) => {
let resurl = httpResponse.url();
let args = getDirAndFile(resurl ,  ...);
// dir is generated from resurl , so if resurl is "localhost:8081/...",then dir is "C:/sites/localhost:8081",

// invalid character ":" in dir.
let dir = args.dir;
//Error is caused in this step with invalid dir, but only stop running ahead, not throw exception,
//so the main process is stopped.
fs.mkdirSync(dir, {recursive: true},(err)=>{
console.log("mkdir="+err); //this message is not printed, I dont understand why
});
});
await page.goto(url, { timeout:30000 , waitUntil: 'networkidle0'});


Update urls import for Django 4.2

url() was renamed to re_path() and moved to a different module in Django 4.

@webgisdeveloper can you review this PR?


runtime-evaluated-decorators not working for the annotations of decorated functions.

from __future__ import annotations

from pydantic import validate_call
from asdf import Foo # error: TCH002: Move third-party import `asdf.Foo` into a type-checking block

@validate_call
def a(value: Foo): ...

config:
{
  "lint": {
    "select": [
      "TCH"
    ],
    "flake8-type-checking": {"runtime-evaluated-decorators": ["pydantic.validate_call"]}
  }
}

playground

I'll take a look now.

It looks like these are applied for assignments within function bodies, but not annotations on function signatures (parameters and return types).


can specify feature list for one tree construction or specify maximum feature use frequency?

can specify feature list for one tree construction or specify maximum feature use frequency?
i want to limit one feature maximum usage nums to make the tree not only rely on some features,
or can i specify some feature list to construct tree in gbdt?

@lw00245 Sorry but I don't quite understand what you are trying to ask.  Let me make some guesses.

specify feature list for one tree construction

Are you trying to say that you want to supply a different list of selected features for each boosted tree?

No.  You can't.  One way to do that is boosting one tree at a time and interleave boosting with your feature engineering procedures.

limit one feature maximum usage nums

Are you trying to say that, after selecting a feature for specified times as split condition, this feature should not be considered afterward?

No again, we currently don't do the counting.  But this feature can be discussed. :)

@lw00245 Sorry but I don't quite understand what you are trying to ask. Let me make some guesses.

specify feature list for one tree construction

Are you trying to say that you want to supply a different list of selected features for each boosted tree?

No.  You can't.  One way to do that is boosting one tree at a time and interleave boosting with your feature engineering procedures.

limit one feature maximum usage nums

Are you trying to say that, after selecting a feature for specified times as split condition, this feature should not be considered afterward?

No again, we currently don't do the counting.  But this feature can be discussed. :)

yeah  all you guess are right,  i hope there will be some call backs which can specify feature list for construct each boost tree,

I opened a new issue to discuss a possible implementation of user-defined split evaluator: #4230


enhance(master): avaliable nodeset check and create need lock protect…

… to avoid parrallel create

What this PR does / why we need it:
Which issue this PR fixes:

fixes #
Special notes for your reviewer:
Release note:

#2803


Tooltip clone element breaks event listeners

Hi
pretty new to react..
I've been trying to use the Tooltip to wrap an IconButton
 function blah(){ alert('clicked');} render() { return ( <Tooltip label="download"><IconButton name="download" onClick={blah} /></Tooltip> )}
What I've found is that when wrapped in a tooltip the onClick event no longer fires, when wrapped in the tooltip

Yes, this is related to https://github.com/tleunen/react-mdl/issues/65
Because of mobile, the click event is used to display the tooltip :s
There's nothing we can do for now to fix this.
@faergeek Do you think it would be better to refactor the tooltip by using our own custom implementation instead? But we won't support mobile I guess :/

@tleunen I'm pretty sure that it's already fixed in mdl 1.1.0, so it's already fixed in master here.
@vurt007 Could you try to install this package from master branch and test?

Great news if it's fixed in 1.1.x.. I'll make some test tonight :)

Confirmed it's fixed in MDL 1.1.x, so it will be fixed in react-mdl 1.4.0. Closing it.
Good job on your fix @faergeek https://github.com/google/material-design-lite/commit/0e65b743a0d60cd186cb941c3f46361527fe376c

great, thanks ... I'll update

@tleunen Thanks :-)


can this plugin autocompile java file?

some config in my .vimrc
Plugin 'artur-shaik/vim-javacomplete2'
Plugin 'airblade/vim-rooter'
let g:rooter_patterns = ['Rakefile', 'web.xml']
let g:JavaComplete_LibsPath = 'classes/:lib/:/home/wsdjeg/tools/apache-tomcat-8.0.24/lib'

in the WEB-INF dir contains  classes/   lib/   src/ and    web.xml
the plugin rooter helps me set the pwd WEB-INF/
all the necessary jar is  included in lib/
java file is included in the src/
class file is included in the classes/
I want to compile the file when save it!
Maybe this function would be the best solution?
Like add this to vimrc
let g:javacomplete_compile_on_save = 1  "default is 0
let g:javacomplete_compile_outputdir = 'classes'

For now, I think better to try to add autocommand to execute compilation on write buffer.

I think so too , i have pull the latest version of this plugin ,and the auto import is very good .


bower install angular-moment moment --save ERROR: "ECONFLICT Unable to find suitable version for moment"

I'm getting an error "ECONFLICT Unable to find suitable version for moment" when running "bower install angular-moment moment --save". Any idea what is going on?
Thanks!

Can you also show how your bower.json looks like and also the console output before the error is shown?

what was the solution? I have the same problem

easy answer and solution, or at least it was for me. I hope this help u out:
http://stackoverflow.com/questions/35844652/bower-unable-to-find-a-suitable-version-for-angular


AKS API server has wrong certificate SAN's

Hi,
We have an issue with AKS apiserver certificate. This certificate has X509v3 Subject Alternative Names:
  DNS:localhost,
  DNS:hcp-kubernetes,
  DNS:kubernetes,
  DNS:kubernetes.default,
  DNS:kubernetes.default.svc,
  DNS:kubernetes.default.svc.cluster.local,
  DNS:hcp-kubernetes.someuniquevalue.svc.cluster.local,
  DNS:somouniquevalue1.hcp.westeurope.azmk8s.io,
  IP Address:<IP_ADDRESS>

All entries are OK except the last one "IP Address:<IP_ADDRESS>" normally here should be internal kubernetes service cluster IP address which is our case is <IP_ADDRESS>.
Due to this some pod like nginx ingress controller are crashing with appropriate log message:
Unexpected error discovering Kubernetes version (attempt 6): Get https://<IP_ADDRESS>:443/version?timeout=32s: x509: certificate is valid for <IP_ADDRESS>, not <IP_ADDRESS>
We have tried to run a certificate rotation procedure however new certificate was also issued with wrong SAN IP address.
Is it save to change the kubernetes service ip address to <IP_ADDRESS> and or we can fix it in some other way that seems to be tricky due to no access to the API server
Thank you.

Is there something in any specific Azure doc doc you are looking to have updated or are having issues with? If yes, please share the link to the documentation. The scope for these doc issues is to help identify gaps and issues with the documentation.
Else, if you are looking for help with troubleshooting issues I would suggest reaching out to the MSDN and Stack Overflow communities, our experts will help you out there. Thanks :)

Yep, agree, bit wrong place, will close the issue


[Reccomendation] Farming Games with ALOT of drops

Dear Archi,
You might be aware of that for games such as csgo and dota, you get a card drop for every $9 you spend ingame. However I am looking for a better solution to farm cards of those games, instead of changing the max farming time. For example:
Farm every game with less than 10 hours first and if everything has dropped, move on to dota and csgo.
I added you on steam to get an insight of the source code, ( I hope it is well commented ) and maybe discuss further improvements, but you ignored my friend request. And please follow up with the documentation!

You can't drop cards if you depleted random drops. At least Dota 2 worked in "classical" way first - allowing you to drop first X cards by playing only, but then every other one is assigned for spending cash in the game only.
There's nothing to fix, because you won't drop any card by playing a game that you farmed already, INCLUDING dota 2 and cs:go, as well as other F2P games and those with similar mechanism.
You're asking for impossible. If you want to, you can put dota 2 and cs:go appIDs in GamesPlayedWhileIdle to check yourself that it does nothing apart from bumping hours. Your idea doesn't make any sense.


automate building Release Candidate in github action

Related to #1306 and #872
Devlist discussion: https://lists.apache.org/thread/oowhcfwv3fcjzdzm76tbn99k5q84mr75
This PR changes .github/workflows/python-release.yml to build the artifacts for both svn and pypi and update the "how to release doc" to match the new process. Other improvements related to the release process are also included:

Trigger GitHub Action on tag push
Trigger GitHub Action manually with required input fields for both version and rc
Validate version and rc from either tag or manual input
Validate version against the current library version
Changed actions/checkout@v4 fetch-depth from 0 to 1 to fetch only a single commit (fetch-depth 0 fetches all history for all branches and tags)
Generate artifact for SVN named svn-release-candidate-${VERSION}rc${RC}
Generate artifact for PyPi named pypi-release-candidate-${VERSION}rc${RC}, set library version to one with RC (e.g. 0.8.1rc1, same behavior as before)

Final release process should look something like this

prepare local branch for release (main for major/minor, branch for patch release)
Create and push tag with RC (e.g. 0.8.1rc1)
Tag push automatically triggers the GitHub Action
Github action builds artifacts for both svn and pypi
Download svn artifact, create checksum and signature, and upload to SVN dev dist
Download pypi artifact and upload to PyPi
Send vote email
Once passed, download artifact from SVN dev dist, upload to SVN release dist and pypi
If a new RC is needed, create and push another tag with RC (e.g. 0.8.1rc2)

Testing

trigger workflow manually

trigger workflow manually (version=0.8.0, rc=10, https://github.com/kevinjqliu/iceberg-python/actions/runs/12166623947) ✅
trigger workflow manually, invalid version (version=0.8.a, rc=10, https://github.com/kevinjqliu/iceberg-python/actions/runs/12167579948) ✅
trigger workflow manually, invalid rc  (version=0.8.0, rc=a, https://github.com/kevinjqliu/iceberg-python/actions/runs/12167639523/job/33936658282) ✅
trigger workflow manually, input version doesn't match the current library version (version=1.0.0, rc=100, https://github.com/kevinjqliu/iceberg-python/actions/runs/12167654762) ✅

trigger workflow via tag push

trigger workflow via tag push (tag=pyiceberg-0.8.0rc10, https://github.com/kevinjqliu/iceberg-python/actions/runs/12167691265)  ✅
trigger workflow via tag push, invalid version tag=pyiceberg-0.8.arc10, not triggered ✅ )
trigger workflow via tag push, invalid rc tag=pyiceberg-0.8.0rca,  not triggered ✅ )
trigger workflow via tag push, input version doesn't match the current library version tag=pyiceberg-1.0.0rc100, https://github.com/kevinjqliu/iceberg-python/actions/runs/12168199006 ✅)

@Fokko could you take a look at this PR when you get a chance?
I tested the new action and instructions via my fork, had to push this branch to main on my fork in order to run the GitHub Action.


Update documentation on site for AngularJs integration

Hi - I recently updated to version 1.3.4 and noticed that the js file name has changed from lokiAngular.js to loki-angular.js - this initially broke my application but easily resolved it my renaming the file.
Please could you update the documentation at http://lokijs.org/#/docs
which currently reads:
LokiJS is made available to Angular through a 'lokijs' module. Include lokiAngular.js and the following should suffice to have a Loki constructor available as a factory:

Thanks! :+1:

Will do - currently working on that!

This adapter has been rewritten and expanded, with wiki documentation here.
It would appear that @techfort did update the lokijs.org documentation, so I will close this.


Added feature flag guidance to Overview & FAQs pages

Closes #3975
Short description

General guidance on feature flags has been added to the documentation in the following locations on our website:

Components > Overview page > Components tab
Components > Overview page > Feature flags tab (newly created page)
Help > FAQs

Changelog
NEW
Components > Overview page > Components tab

Added medium-sized feature flag tags to the following component cards that have the feature flag property:
Menu buttons, Modal, Notification, Structured list, Tile, Treeview

[ ] ⭐ REQUIRED CODE REVIEW

Components > Overview page > Feature flag tab

Created a new tab under Components > Overview called "Feature flags", and for the content, please refer to the Figma file or this issue #3975.

Help > FAQs

Added 2 more questions:  (Figma file for reference)

"What are feature flags? Where do I find them?"
"What are experimental components? Where do I find them?"

CHANGED
Help > FAQs

Update the copy for one of the questions:
From: "Where do I find the Experimental components and patterns?"
To: "Where do I find the community assets?"

updating the data/components.json

Hi @alisonjoseph, thanks for the review. I've updated the data/components.json as suggested.
I have a quick question: In the Menu button components, the Overflow menu, which is a variant of Menu buttons, has a feature flag, but it doesn't appear in the overview card view. Should I add "featureFlag": true for the Overflow menu as well, like this:
{
  "component": "Overflow menu",
  "parentComponent": "Menu buttons",
  "featureFlag": true,
  "overview": false,
  "testing": {
  "screenreader": "manual"
  }
},

Or should I leave it as is for now? Here’s a screenshot for reference of what is currently in the code:

@Kritvi-bhatia17 sorry I wasn't clear, there's no logic currently built to ingest that data. You'll need a dev to add that to the ComponentOverview.js page.


Can't use cli tool

The textx command fails with this error message:
raise Exception('textX must be installed with CLI dependencies to use '
Exception: textX must be installed with CLI dependencies to use textx command.
pip install textX[cli]

and pip can't find any matches for textX[cli]
What's wrong here?

I can't reproduce the problem. It might be a transient problem with PyPI. Do you still have this issue?
Another source of problem might be if you are using zsh or some other shell that interprets [] specially.
If that is the case try to escape brackets like this  pip install textX\[cli\]

I can't reproduce the problem. It might be a transient problem with PyPI. Do you still have this issue?
Another source of problem might be if you are using zsh or some other shell that interprets [] specially.
If that is the case try to escape brackets like this  pip install textX\[cli\]

It seems that zsh caused the problem for me. Thanks a lot I wasn't aware of the special interpretation of [] .

It seems that zsh caused the problem for me. Thanks a lot I wasn't aware of the special interpretation of [] .


Fix issue with missing Unit enumeration values, fix documentation issues, improved tests for multi-dim metrics API

Description
Adding missing Unit enumeration values: ByteSeconds, Unspecified.
Fixing several typos in the documentation.
Improving the tests for Multi-Dim Metrics API. Also scenario tests re-recorded with the new content.

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] I have read the contribution guidelines.
[x] The pull request does not introduce breaking changes.

General Guidelines

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[x] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[x] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[x] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

The PR (Swagger spec) that includes the changes is this:
https://github.com/Azure/azure-rest-api-specs/pull/1696

NOTE: The purpose of this PR is to verify that Vinicius is not labelled by Git as causing abuse as I was labelled in my two previous PR for these same changes.
No matter the result, we will need to dig deeper into this "abuse detected" issue, since that means either I or the whole team cannot issue PRs to this repo because of it.

As soon as I remove the lines 23-30 from the test project my local build fails for net452 because it does not find several types used in the tests: Http (namespace), DelegatingHandler, HttpResponseMessage, HttpRequestHeaders, HttpMethod, etc.
If I remove the target net452 from the project the compilation issues go away, and so do the test cases.  They are not detected in VS and don't run from the command line either. I am probably missing the discoverer and/or executor for netcoreapp1.1.
I am going to check-in a file without the net452 target and without the lines 23-30.
But, I will keep a project file that will allow me to test locally, but I won't check it in.

BTW: this PR seems to be stuck in the continuous integration, just like mines.

I just went to travis-ci.org and created my account using the github details. Travis responded the following: We've successfully synchronized your details from GitHub.
We will redirect you to your profile in a few seconds.
Does that help?


Variable Inspector clears all variables and stops recording new ones

I find that my Variable Inspector cleared all variables and stopped recording new variables. I do not know whether I pressed anything wrong. It works well on a newly created notebook.

The problem stated above was fixed by restarting Kernel (or something else that I did not notice). But today, I come across another similar but more serious problem after I installed the  xeus-python by pip install xeus-python.  The Variable Inspector cleared all variables, and it got stuck on "Restarting kernel". Uninstalling xeus-python and re-installing Varaible Inspector can not fix the problem.

I have had an adjacent issue to this. I was experimenting around with what variables could be inspected when installing the extension. Everything was working well until I created a dictionary in one file. The variable inspector broke on this and would not stop inspecting the kernel of the notebook with the dictionary.
Since then, whenever I have restarted kernels for any notebook, and there may be a collection of things I did that I did not document, the variable inspector would display variables for a previously shut down kernel and the log, in debug mode, would output strangeness. The following is an example log:
10:58:05 AM

Log level set to debug

10:58:07 AM

'[{"varName": "x", "varType": "int", "varSize": "28", "varShape": "", "varContent": "1", "isMatrix": false, "isWidget": null}]'

10:58:12 AM

'[{"varName": "x", "varType": "int", "varSize": "28", "varShape": "", "varContent": "1", "isMatrix": false, "isWidget": null}]'

10:58:34 AM

No such comm target registered: jupyter.widget.control
No such comm: f423b59d-0631-45f4-8d84-ef8f50b15393

10:58:37 AM

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[2], line 1
----> 1 _jupyterlab_variableinspector_dict_list()

NameError: name '_jupyterlab_variableinspector_dict_list' is not defined

10:58:57 AM

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[2], line 1
----> 1 _jupyterlab_variableinspector_dict_list()

NameError: name '_jupyterlab_variableinspector_dict_list' is not defined

10:59:21 AM

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[3], line 1
----> 1 _jupyterlab_variableinspector_dict_list()

NameError: name '_jupyterlab_variableinspector_dict_list' is not defined

11:02:49 AM

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[3], line 1
----> 1 _jupyterlab_variableinspector_dict_list()

NameError: name '_jupyterlab_variableinspector_dict_list' is not defined

11:02:55 AM

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[4], line 1
----> 1 _jupyterlab_variableinspector_dict_list()

NameError: name '_jupyterlab_variableinspector_dict_list' is not defined

11:02:55 AM

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[5], line 1
----> 1 _jupyterlab_variableinspector_dict_list()

NameError: name '_jupyterlab_variableinspector_dict_list' is not defined

The output  indicating when I restarted the console is in the above, but here it is isolated for clarity:
10:58:34 AM

No such comm target registered: jupyter.widget.control
No such comm: f423b59d-0631-45f4-8d84-ef8f50b15393

I am running JupyterLab on windows. The version of JupyterLab is 3.6.4 and the version of Variable Inspector is 3.0.9


jest-8063: Fix for paths created via SUBST

This is a fix for the bug reported here: https://github.com/facebook/jest/issues/8063
I'm not sure if this is the correct fix or not, it would be good to get verification before merge. Though Jest on my local machine is now operating correctly after this change.

I've just realised this suggested code change is nonsense.
Instead, on my local machine I've been deleting lines 32 to 40


optimize: optimize config and server module log

Signed-off-by: slievrly<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
optimize: optimize config and server module log
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #2558 into develop will decrease coverage by 0.01%.
The diff coverage is 37.50%.

@@              Coverage Diff              @@
##             develop    #2558      +/-   ##
=============================================
- Coverage      51.43%   51.41%   -0.02%
+ Complexity      2807     2805       -2
=============================================
  Files            553      553
  Lines          17699    17691       -8
  Branches        2089     2091       +2
=============================================
- Hits            9103     9096       -7
+ Misses          7743     7738       -5
- Partials         853      857       +4

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/io/seata/config/ConfigurationFactory.java
50.00% <0.00%> (ø)
4.00 <0.00> (ø)

...c/main/java/io/seata/config/FileConfiguration.java
34.84% <0.00%> (ø)
6.00 <0.00> (ø)

...o/seata/server/coordinator/DefaultCoordinator.java
54.63% <33.33%> (-0.37%)
28.00 <2.00> (-1.00)

...java/io/seata/server/coordinator/AbstractCore.java
55.29% <37.50%> (-0.66%)
12.00 <0.00> (ø)

.../java/io/seata/server/coordinator/DefaultCore.java
54.08% <50.00%> (-0.24%)
23.00 <0.00> (ø)

...in/java/io/seata/server/session/GlobalSession.java
84.86% <0.00%> (-0.46%)
71.00% <0.00%> (-1.00%)


external test jacoco_test failed with jdk17 (passed with jdk11)

external test jacoco_test failed with jdk17 (passed with jdk11)
jdk11: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/456/ passed
jdk17: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/449/console
17:54:39  /jacoco/org.jacoco.build
17:54:39  Compile and run jacoco tests
17:54:39  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom
17:54:40  [ERROR] Error executing Maven.
17:54:40  [ERROR] java.lang.IllegalStateException: Unable to load cache item
17:54:40  [ERROR] Caused by: Unable to load cache item
17:54:40  [ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper
17:54:40  Build jacoco completed
17:54:40  Test results copied
17:54:41
17:54:41  jacoco_test_0_FAILED

We currently are not using the latest stable build which appears to be https://github.com/jacoco/jacoco/releases/tag/v0.8.7. We likely should switch to using it by updating tag_version="v0.8.7" to the jacoco/test.properties file.
We may still see the issue being reported, but at least we are pulling a stable build (otherwise we are just pulling from master/main branch).
The comment of https://github.com/jacoco/jacoco/releases/tag/v0.8.7
JaCoCo now officially supports Java 15 and 16 (GitHub https://github.com/jacoco/jacoco/pull/1094, https://github.com/jacoco/jacoco/pull/1097, https://github.com/jacoco/jacoco/pull/1176).
Experimental support for Java 17 class files (GitHub https://github.com/jacoco/jacoco/pull/1132).
The failure with jdk17 might be expected.

I would like to work on this issue

external test jacoco_test with jdk17 after updating tag_version = "v0.8.7": https://ci.adoptopenjdk.net/job/Grinder/3766/console
@sophia-guo Hi Sophia, can I get some clarification on what next step I should take?

Test passed with jdk11 and failed with jdk17. So might not be the test environment setting issue. The failure is similar to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980467, which suggests the issue with maven and jdk17. I can see same failure with https://github.com/adoptium/aqa-tests/issues/3382 and believe there are other tests got the same failures. Could you please print the maven version by command mvn -v ? Thanks.

Same failure as jacocoLooks like this mvn version doesn't work with jdk17.

@yinggzz please see the comment https://github.com/adoptium/aqa-tests/issues/3390#issuecomment-1061063080

external test rerun with jdk17, this time passed successfully: https://ci.adoptopenjdk.net/job/Grinder/3842/
output of command mvn-v:
11:58:22  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom
11:58:22  Apache Maven 3.6.3
11:58:22  Maven home: /usr/share/maven
11:58:22  Java version: 17.0.3-beta, vendor: Eclipse Adoptium, runtime: /opt/java/openjdk
11:58:22  Default locale: en_US, platform encoding: UTF8
11:58:22  OS name: "linux", version: "4.4.0-204-generic", arch: "amd64", family: "unix"

It passed because your change will only run mvn -v command, no tests will run. If your branch 3390 is used to commit some tag update, you will need to reverse that change.

This has found an interesting defect, given that there were errors and it still shows as passed.
11:58:23  The directory in the external.sh is jacoco
11:58:23  Error: No such container: jacoco-test

same error happened to netty.

re https://github.com/adoptium/aqa-tests/issues/3390#issuecomment-1067303848
The error message is expected, similar to the error message when doing the image clean at the build step. We explicitly remove the container no matter it exist or not, which should not affect the build status.
11:57:24  clean_image:
11:57:24       [echo] Executing external.sh --clean --dir jacoco --tag nightly --version 17 --impl hotspot
11:57:24       [exec] The test here is jacoco
11:57:24       [exec] The directory in the external.sh is jacoco
11:57:24       [exec] Error: No such container: jacoco-test
11:57:24       [exec] Result: 1


is there a way to combine optimal quest guide with optimal achievement diaries?

have a way to toggle both intertwined for the best route on completing both

While useful, I am considering Achievement Diaries outside the scope of this plugin.


Update Magicl bindings for Magicl NG

This is to update all magicl bindings to work with rigetti/magicl#63.
Benchmarks need to be done prior to merging to make sure there is not a significant performance hit.

e n h a n c e

@stylewarning smash the merge button


Fast Forward and Rewind via GPIO-Buttons

How about fast forward and rewind like in the web-interface but with GPIO-buttons. In case of large sound files this could be handy.
Or maybe it ist possible that a long or a short push of the SKIP-buttons is read as fast forward/rewind or skip.

Hi @rpkZarathustra
I did this and it comes in totally handy (couldn't stand the beeping noise of the RFID reader).
I used those buttons. You need to solder as described here in section 5.
code should be added to gpio-buttons.py, please check pins and enter yours (I'm actually using splitti's oled script for this, hence the jukebox variable):
`
jukebox4kidsPath = "/home/pi/RPi-Jukebox-
def def_seekahead():
check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playerseek -v=+20", shell=True)
def def_seekback():
check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playerseek -v=-20", shell=True)
seekA = Button(16,pull_up=False,hold_time=0.3,hold_repeat=True)
seekB = Button(19,pull_up=False,hold_time=0.3,hold_repeat=True)
seekA.when_pressed = def_seekahead
seekA.when_held = def_seekahead
seekB.when_pressed = def_seekback
seekB.when_held = def_seekback
`
This works as I expected, short press +/- 20 sec and if hold is seeks ahead/backwards as long as it's hold
(see also here)

Hi @iwishitwassummer
thumbs up. Could you create a pull request against the develop branch?

@MiczFlor I'll try, but I'm a newbie to working with code in github

Alternatively, you could post the complete file here in the thread and I will merge it in.

Could you post your gpio-buttons.py?
Eversince i try to "merge" your code with mine (also Splitti), i cant activate the GPIO-Buttons. Just to compare and search the bug in my copy-paste-coding.

Apologies for the late reply
Is placed in ~/oled_phoniebox/scripts/gpio-buttons
#!/usr/bin/python3
from gpiozero import Button`
from signal import pause
from subprocess import check_call
from time import sleep
# This script will block any I2S DAC e.g. from Hifiberry, Justboom, ES9023, PCM5102A
# due to the assignment of GPIO 19 and 21 to a buttons

# 2018-10-31
# Added the function on holding volume + - buttons to change the volume in 0.3s interval
#
# 2018-10-15
# this script has the `pull_up=True` for all pins. See the following link for additional info:
# https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/259#issuecomment-430007446
#
# 2017-12-12
# This script was copied from the following RPi forum post:
# https://forum-raspberrypi.de/forum/thread/13144-projekt-jukebox4kids-jukebox-fuer-kinder/?postID=312257#post312257
# I have not yet had the time to test is, so I placed it in the misc folder.
# If anybody has ideas or tests or experience regarding this solution, please create pull requests or contact me.

jukebox4kidsPath = "/home/pi/RPi-Jukebox-RFID"

def def_shutdown():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=shutdown", shell=True)

def def_volU():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=volumeup", shell=True)

def def_volD():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=volumedown", shell=True)

def def_vol0():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=mute", shell=True)

def def_next():
#  for x in range(0, 19):
#    if next.is_pressed == True :
#      sleep(0.1)
#    else:
      check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playernext", shell=True)
#      break

def def_contrastup():
  if prev.is_pressed == True :
    check_call("/usr/bin/touch /tmp/o4p_overview.temp", shell=True)
  else:
    check_call("/usr/bin/python3 /home/pi/oled_phoniebox/scripts/contrast/contrast_up.py", shell=True)

def def_contrastdown():
  if next.is_pressed == True :
    check_call("/usr/bin/touch /tmp/o4p_overview.temp", shell=True)
  else:
    check_call("/usr/bin/python3 /home/pi/oled_phoniebox/scripts/contrast/contrast_down.py", shell=True)

def def_prev():
#  for x in range(0, 19):
#    if prev.is_pressed == True :
#      sleep(0.1)
#    else:
      check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playerprev", shell=True)
#      break

def def_halt():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playerpause", shell=True)

def def_seekahead():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playerseek -v=+20", shell=True)

def def_seekback():
    check_call(jukebox4kidsPath+"/scripts/playout_controls.sh -c=playerseek -v=-20", shell=True)

#shut = Button(3, hold_time=2)
#vol0 = Button(13,pull_up=True)
#volU = Button(16,pull_up=True,hold_time=0.3,hold_repeat=True)
#volD = Button(19,pull_up=True,hold_time=0.3,hold_repeat=True)
next = Button(26,pull_up=False,hold_time=0.1,hold_repeat=False)
prev = Button(20,pull_up=False,hold_time=0.1,hold_repeat=False)
#prev = Button(20,pull_up=False)
#next = Button(26,pull_up=False)
halt = Button(21,pull_up=False)
# vorspulen/zurueckspulen ACHTUNG sind dieselben pins wie Volume im classic mode der Phoniebox
seekA = Button(16,pull_up=False,hold_time=0.3,hold_repeat=True)
seekB = Button(19,pull_up=False,hold_time=0.3,hold_repeat=True)

#shut.when_held = def_shutdown
#vol0.when_pressed = def_vol0
#volU.when_pressed = def_volU
#When the Volume Up button was held for more than 0.3 seconds every 0.3 seconds he will call a ra$
#volU.when_held = def_volU
#volD.when_pressed = def_volD
#When the Volume Down button was held for more than 0.3 seconds every 0.3 seconds he will lower t$
#volD.when_held = def_volD
seekA.when_pressed = def_seekahead
seekA.when_held = def_seekahead
seekB.when_pressed = def_seekback
seekB.when_held = def_seekback
next.when_pressed = def_next
#next.when_held = def_contrastup
prev.when_pressed = def_prev
#prev.when_held = def_contrastdown
halt.when_pressed = def_halt

pause()

Thx - i dont have any coding skills, but every volume is commented out.
how do you change volume?

Remove # at beginning of the line.
Be sure the pins are the ones you use

Am 19.10.2019 um 20:29 schrieb carver79<EMAIL_ADDRESS>Thx - i dont have any coding skills, but every volume is commented out.
how do you change volume?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks for the code, just managed to get it to work! In case anyone is having trouble getting this to work: try using pull_up=True, so e.g.:
seekA = Button(16,pull_up=False,hold_time=0.3,hold_repeat=True)

Hello There, is there any progress or implementation to fastforward with the next button and reverse/previous comming? this would be wonderful!
Since I am not able to code my self... i would appreciate your help :)
cheers ! and thanks for your hard Work

@thedipling just try coding, it's fun :)
and you might need to adapt the script most likely to your GPIO pins anyhow.
in your phoniebox folder go to the script folder and open gpio-buttons.py in a coding editor
Look at my post from October on where to those follwing lines.
Best those under all the other line with def at the beginning
def def_seekahead():     check_call("./scripts/playout_controls.sh -c=playerseek -v=+20", shell=True)
def def_seekback():     check_call("./scripts/playout_controls.sh -c=playerseek -v=-20", shell=True)
then those somewhere in the middle:
seekA = Button(16,pull_up=False,hold_time=0.3,hold_repeat=True)
seekB = Button(19,pull_up=False,hold_time=0.3,hold_repeat=True)
somewhere in the end:
seekA.when_pressed = def_seekahead
seekA.when_held = def_seekahead
seekB.when_pressed = def_seekback
seekB.when_held = def_seekback
the tricky bit in python is the indentation. If you use a good coding editor it will help to show you "the empty spaces", try to align it to the "paragraph" your in e.g. align with the oder def

@iwishitwassummer thanks! I've red it - and already tried to implement it - but... i was not successful.. I thought there is something missing...
but i will try it again :)
btw. my editor is nano ^^
another silly question - the pins 16 and 19 are the next and previous pins in your settings?
and there is nothing else to do? What is the time which will be skiped?
That would be greate if that works

my next and prev buttons are 20 and 26:
next = Button(26,pull_up=False,hold_time=0.1,hold_repeat=False)
prev = Button(20,pull_up=False,hold_time=0.1,hold_repeat=False)
16 and 19  are used for seeking forth and back. But be aware in Phoniebox Classic those are used for Volume settings so you most likely have to adapt the pins to match yours
time skipped is defined in the def with parameter -v that a mpd parameter in sec:
def def_seekback(): check_call("./scripts/playout_controls.sh -c=playerseek -v=-20", shell=True)
Minus or Plus for backwards or forwards seeking
the def reference the script playout_control where everything was already defined
Just FYI: I'm still on 1.1.9 Classic, I am trying to update but that involves the new OS, hence bigger job, but I don't think it has changed

ah okay I am on 2.0 rc8 (I think)
here is my config attached.
gpio-buttons_RPi1B_thedipling.py.txt
I hope you or someone else could help :)

Don't see a difference. also no change in playout controls as far as I can see
But do you have a version where you added my code?

thats my working config. I've added yours but it was not working so i decided to upload the working one - if it is possible would you add your code so that it should work?
otherwise I try to upload the not-working config tomorrow evening.
cheers and thanks for your replies so far

Sorry for the late answer.
here you can find the modified - not working py-file.
with the previous one the cpu is normal at ca. 20% - with the modified one at 100% and the buttons are not working.
cheers
gpio-buttons-seek-test_notsoworking_RPi1B.py.txt

your next/back are on the same pin. I could that to work as well, there are not enough status for a button I guess. Use different pins

One simple way to achieve Fast Forward/Rewind/Seek via Buttons
Add the following line to the gpio_settings.ini in the settingsfolder
[FastForward]
enabled: True
Type:  Button
Pin: YOUR GPIO PIN
pull_up: True
hold_time: 0.3
functionCall: functionCallPlayerSeekFwd
[Rewind]
enabled: True
Type:  Button
Pin: YOUR GPIO PIN
pull_up: True
hold_time: 0.3
functionCall: functionCallPlayerSeekBack
@MiczFlor  Merge request with this lines created


[DS-3057] Enable enforce versions to prevent dependency issues

https://jira.duraspace.org/browse/DS-3057
This pull request will prevent potential bugs sneaking in due to conflicting versions..

Marked as in progress because not all dependencies have been fixed yet.

Clarification..this PR actually "works", but it is showing we have dependency conflicts (which is why Travis CI is failing).  To get this merged, we need someone to help us dig into those dependency conflicts and add exclusions to POMs as needed, etc.

All dependency conflicts should be resolved, rebased on latest master. Clean package works, in order to test just add a conflicting dependency version to a pom.xml & the build will fail.

+1 by inspection


asterisk user not being created

Keep getting this error whenever I tried to startup this container

No /etc/asterisk/asterisk.conf file detected. Installing...Writing /etc/asterisk/asterisk.conf...Done
bash: line 0: cd: /home/asterisk/: No such file or directory
Checking if Asterisk is running and we can talk to it as the 'asterisk' user...Error!

Have tried rebuilding as clean slate several times, also using internal DB.

Hi Kyle,
Show me your docker-compose section, specifically the volumes section?

Thanks for getting back to me
here it is
    volumes:
      - pbx-certs:/certs
      - pbx-data:/data
      - pbx-log:/var/log
      - pbx-www:/var/www/html
      - pbx-db:/var/lib/mysql

volumes:
  pbx-data:
    external: true
  pbx-www:
    external: true
  pbx-db:
    external: true
  pbx-certs:
    external: true
  pbx-log:
    external: true

I do see content in the directories after the initial setup, which I have wiped and tried rebuilding fresh again. Also these volumes are mapped to an NFS share which works for a bunch of other container volumes.

Can you enter into the container and look at the permissions for /home/asterisk ? It should be a symlink to /data/home/asterisk I believe. I'm wondering if NFS is the cause, shouldn't, but we've seen stranger things with this image.

Also if you could try to create a few files (touch foo.txt) inside the /home/asterisk folder, I'm wondering if we can get some sort of debug mode happening with the installer to see what its trying to do without having to walk through all of their php code.

Looks like you are probably right with the NFS issue
root@89555e2a3763:/home# ls -la
total 8
drwxr-xr-x 1 root root 4096 May 10 12:53 .
drwxr-xr-x 1 root root 4096 Jun  6 08:30 ..
lrwxrwxrwx 1 root root   19 May 10 12:53 asterisk -> /data/home/asterisk
root@89555e2a3763:/home# cd /data/home/asterisk
bash: cd: /data/home/asterisk: No such file or directory
root@89555e2a3763:/home# cd /data/
root@89555e2a3763:/data# ls
etc  var
root@89555e2a3763:/data#

I was able to create the directory manually but this still didn't fix the asterisk install even after rebuilding the container from scratch while keeping the new dirs I made. I do seem to be able to write to that directory inside the container with either root or asterisk users.
root@f02d28f3cbc6:/home# su asterisk
asterisk@f02d28f3cbc6:/home$ touch asterisk/foo.txt
asterisk@f02d28f3cbc6:/home$ ls -la asterisk/
total 16
drwxr-xr-x 3 asterisk asterisk 4096 Jun  6 08:41 .
drwxr-xr-x 3 asterisk asterisk 4096 Jun  6 08:34 ..
-rw------- 1 asterisk asterisk  102 Jun  6 08:35 .bash_history
drwx------ 4 asterisk asterisk 4096 Jun  6 08:37 .gnupg
-rw-r--r-- 1 asterisk asterisk    0 Jun  6 08:41 foo.txt

Also here is the startup from fresh container and clean dirs with debug enabled
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] 01-s6: applying...
[fix-attrs.d] 01-s6: exited 0.
[fix-attrs.d] 02-zabbix: applying...
[fix-attrs.d] 02-zabbix: exited 0.
[fix-attrs.d] 03-logrotate: applying...
[fix-attrs.d] 03-logrotate: exited 0.
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-permissions: executing...
+ DEBUG_PERMISSIONS=FALSE
+ ENABLE_PERMISSIONS=TRUE
+ '[' TRUE = TRUE ']'
+ varenvusername=(`env | grep USER_ | awk -F= '{print tolower($1)}' | awk -F_ '{print $2}'`)
++ env
++ grep USER_
++ awk -F= '{print tolower($1)}'
++ awk -F_ '{print $2}'
+ varenvuid=(`env | grep USER_ | awk -F= '{print tolower($2)}'`)
++ env
++ grep USER_
++ awk -F= '{print tolower($2)}'
++ echo ''
++ sed 's/ /\\|/g'
+ strusers=
+ [[ ! -z '' ]]
+ '[' FALSE = TRUE ']'
+ '[' FALSE = true ']'
+ '[' TRUE = TRUE ']'
+ echo '**** [permissions] [debug] Users (varenvusername) from Docker env are: '
**** [permissions] [debug] Users (varenvusername) from Docker env are:
**** [permissions] [debug] UIDs (varenvuid) from Docker env are:
+ echo '**** [permissions] [debug] UIDs (varenvuid) from Docker env are: '
+ echo '**** [permissions] [debug] The string (strusers) used to grep the users is: '
**** [permissions] [debug] The string (strusers) used to grep the users is:
+ echo '**** [permissions] [debug] Users (varpassuser) from /etc/passwd are: '
**** [permissions] [debug] Users (varpassuser) from /etc/passwd are:
+ echo '**** [permissions] [debug] UIDs (varpassuserid) from /etc/passwd are: '
**** [permissions] [debug] UIDs (varpassuserid) from /etc/passwd are:
+ counter=0
+ '[' 0 -gt 0 ']'
+ counter=0
+ varenvgroupname=(`env | grep ^GROUP_ | grep -v GROUP_ADD_  | awk -F= '{print tolower($1)}' | awk -F_ '{print $2}'`)
++ env
++ grep '^GROUP_'
++ awk -F= '{print tolower($1)}'
++ awk -F_ '{print $2}'
++ grep -v GROUP_ADD_
+ varenvgid=(`env | grep ^GROUP_ | grep -v GROUP_ADD_ | awk -F= '{print tolower($2)}'`)
++ grep '^GROUP_'
++ grep -v GROUP_ADD_
++ awk -F= '{print tolower($2)}'
++ env
++ echo ''
++ sed 's/ /\\|/g'
+ strgroups=
+ [[ ! -z '' ]]
+ '[' FALSE = TRUE ']'
+ '[' FALSE = true ']'
+ '[' TRUE = TRUE ']'
+ echo '**** [permissions] [debug] Group names (varenvgroupname) from Docker environment settings are: '
**** [permissions] [debug] Group names (varenvgroupname) from Docker environment settings are:
+ echo '**** [permissions] [debug] GIDs (grvarenvgid) from Docker environment settings are: '
+ echo '**** [permissions] [debug] The string (strgroup) used to grep the groups is: '
**** [permissions] [debug] GIDs (grvarenvgid) from Docker environment settings are:
**** [permissions] [debug] The string (strgroup) used to grep the groups is:
+ echo '**** [permissions] [debug] Group names (vargroupname) from /etc/group are: '
+ echo '**** [permissions] [debug] GIDs (vargroupid) from /etc/group are: '
**** [permissions] [debug] Group names (vargroupname) from /etc/group are:
**** [permissions] [debug] GIDs (vargroupid) from /etc/group are:
+ '[' 0 -gt 0 ']'
+ counter=0
+ varenvuser2add=(`env | grep ^GROUP_ADD_ | awk -F= '{print $1}' | awk -F_ '{print tolower($3)}'`)
++ env
++ grep '^GROUP_ADD_'
++ awk -F= '{print $1}'
++ awk -F_ '{print tolower($3)}'
+ varenvdestgroup=(`env | grep ^GROUP_ADD_ | awk -F= '{print tolower($2)}'`)
++ env
++ grep '^GROUP_ADD_'
++ awk -F= '{print tolower($2)}'
**** [permissions] [debug] Users (varenvuser2add) to add to groups are:
**** [permissions] [debug] Groups (varenvdestgroup) to add users are:
+ '[' FALSE = TRUE ']'
+ '[' FALSE = true ']'
+ '[' TRUE = TRUE ']'
+ echo '**** [permissions] [debug] Users (varenvuser2add) to add to groups are: '
+ echo '**** [permissions] [debug] Groups (varenvdestgroup) to add users are: '
+ mkdir -p /tmp/state
++ basename /var/run/s6/etc/cont-init.d/01-permissions
+ touch /tmp/state/01-permissions-init
[cont-init.d] 01-permissions: exited 0.
[cont-init.d] 02-zabbix: executing...
**** [zabbix] Disabling Zabbix
[cont-init.d] 02-zabbix: exited 0.
[cont-init.d] 03-cron: executing...
**** [cron] Enabling Cron
[cont-init.d] 03-cron: exited 0.
[cont-init.d] 04-smtp: executing...
**** [smtp] [debug] SMTP Mailcatcher Enabled at Port 1025, Visit http://<IP_ADDRESS>:8025 for Web Interface
**** [smtp] Disabling SMTP Features
[cont-init.d] 04-smtp: exited 0.
[cont-init.d] 05-fail2ban: executing...
** [freepbx] Disabling Fail2ban
[cont-init.d] 05-fail2ban: exited 0.
[cont-init.d] 08-mongodb: executing...
[cont-init.d] 08-mongodb: exited 0.
[cont-init.d] 09-mariadb: executing...
+ [[ TRUE = \T\R\U\E ]]
+ DB_EMBEDDED=TRUE
+ [[ TRUE = \T\R\U\E ]]
+ silent service mysql stop
+ '[' TRUE = TRUE ']'
+ service mysql stop
Stopping MariaDB database server: mysqld.
+ mkdir -p /var/lib/mysql
+ '[' '!' -d /var/lib/mysql/mysql ']'
+ echo '** [mysql] New Embedded Database Detected, setting up..'
** [mysql] New Embedded Database Detected, setting up..
+ cp -R /assets/config/var/lib/mysql/aria_log.00000001 /assets/config/var/lib/mysql/aria_log_control /assets/config/var/lib/mysql/debian-10.1.flag /assets/config/var/lib/mysql/ib_logfile0 /assets/config/var/lib/mysql/ib_logfile1 /assets/config/var/lib/mysql/ibdata1 /assets/config/var/lib/mysql/mysql /assets/config/var/lib/mysql/performance_schema /var/lib/mysql
+ chown -R mysql:mysql /var/lib/mysql
+ silent service mysql start
+ '[' TRUE = TRUE ']'
+ service mysql start
Starting MariaDB database server: mysqld.
+ mkdir -p /tmp/state
+ touch /tmp/state/09-mariadb-init
[cont-init.d] 09-mariadb: exited 0.
[cont-init.d] 10-freepbx: executing...
+ [[ TRUE = \T\R\U\E ]]
+ DB_EMBEDDED=TRUE
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ ADMIN_DIRECTORY=/admin
+ DB_PORT=3306
+ ENABLE_FOP=TRUE
+ FOP_DIRECTORY=/fop
+ HTTP_PORT=80
+ HTTPS_PORT=443
+ RTP_FINISH=18100
+ RTP_START=18000
+ UCP_FIRST=TRUE
+ WEBROOT=/var/www/html
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ '[' '!' -f /data/.installed ']'
+ '[' -f /data/etc/asterisk/.asterisk_version ']'
** [freepbx] Setting File Permissions
+ echo '** [freepbx] Setting File Permissions'
+ mkdir -p /data/etc/asterisk
+ mkdir -p /data/var/lib/asterisk/agi-bin /data/var/lib/asterisk/bin /data/var/lib/asterisk/playback
+ mkdir -p /data/var/spool/asterisk/cache /data/var/spool/asterisk/dictate /data/var/spool/asterisk/meetme /data/var/spool/asterisk/monitor /data/var/spool/asterisk/recording /data/var/spool/asterisk/system /data/var/spool/asterisk/tmp /data/var/spool/asterisk/voicemail
+ mkdir -p /data/var/run/asterisk
+ chown -R asterisk:asterisk /data
+ '[' '!' -f /var/www/html/admin/index.php ']'
+ echo '** [freepbx] New Install Detected - Please wait while we fetch FreePBX - Will take 3 to 30 minutes!'
+ '[' /var/www/html '!=' /var/www/html ']'
** [freepbx] New Install Detected - Please wait while we fetch FreePBX - Will take 3 to 30 minutes!
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ cd /usr/src
+ mkdir -p /usr/src/freepbx
+ curl -ssL https://github.com/FreePBX/framework/archive/release/<IP_ADDRESS>.tar.gz
+ tar xfz - --strip 1 -C /usr/src/freepbx
+ silent sudo -u asterisk gpg --refresh-keys --keyserver hkp://keyserver.ubuntu.com:80
+ '[' TRUE = TRUE ']'
+ sudo -u asterisk gpg --refresh-keys --keyserver hkp://keyserver.ubuntu.com:80
gpg: Fatal: can't create directory '/home/asterisk/.gnupg': No such file or directory
+ silent sudo -u asterisk gpg --import /usr/src/freepbx/amp_conf/htdocs/admin/libraries/BMO/9F9169F4B33B4659.key
+ '[' TRUE = TRUE ']'
+ sudo -u asterisk gpg --import /usr/src/freepbx/amp_conf/htdocs/admin/libraries/BMO/9F9169F4B33B4659.key
gpg: Fatal: can't create directory '/home/asterisk/.gnupg': No such file or directory
+ silent sudo -u asterisk gpg --import /usr/src/freepbx/amp_conf/htdocs/admin/libraries/BMO/3DDB2122FE6D84F7.key
+ '[' TRUE = TRUE ']'
+ sudo -u asterisk gpg --import /usr/src/freepbx/amp_conf/htdocs/admin/libraries/BMO/3DDB2122FE6D84F7.key
gpg: Fatal: can't create directory '/home/asterisk/.gnupg': No such file or directory
+ silent sudo -u asterisk gpg --import /usr/src/freepbx/amp_conf/htdocs/admin/libraries/BMO/86CE877469D2EAD9.key
+ '[' TRUE = TRUE ']'
+ sudo -u asterisk gpg --import /usr/src/freepbx/amp_conf/htdocs/admin/libraries/BMO/86CE877469D2EAD9.key
gpg: Fatal: can't create directory '/home/asterisk/.gnupg': No such file or directory
+ cd /usr/src/freepbx
+ cp -R /etc/odbc.ini /usr/src/freepbx/installlib/files/odbc.ini
+ touch /etc/asterisk/modules.conf /etc/asterisk/cdr.conf
+ echo '** [freepbx] Starting Asterisk for the first time..'
+ silent ./start_asterisk start
+ '[' TRUE = TRUE ']'
+ ./start_asterisk start
** [freepbx] Starting Asterisk for the first time..

STARTING ASTERISK
Asterisk Started
+ '[' '!' -f /var/run/asterisk/asterisk.pid ']'
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ echo '** [freepbx] Installing FreePBX source code'
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ silent ./install -n --webroot=/var/www/html
** [freepbx] Installing FreePBX source code
+ '[' TRUE = TRUE ']'
+ ./install -n --webroot=/var/www/html
Assuming you are Database Root
Checking if SELinux is enabled...Its not (good)!
No /etc/asterisk/asterisk.conf file detected. Installing...Writing /etc/asterisk/asterisk.conf...Done
bash: line 0: cd: /home/asterisk/: No such file or directory
Checking if Asterisk is running and we can talk to it as the 'asterisk' user...Error!
Error communicating with Asterisk.  Ensure that Asterisk is properly installed and running as the asterisk user
Asterisk does not appear to be running
Try starting Asterisk with the './start_asterisk start' command in this directory
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ '[' '!' -f /usr/sbin/fwconsole ']'
** [freepbx] Can't seem to locate /usr/sbin/fwconsole.. Exitting
+ echo '** [freepbx] Can'\''t seem to locate /usr/sbin/fwconsole.. Exitting'
+ exit 1
[cont-init.d] 10-freepbx: exited 1.
[cont-init.d] 99-container-init: executing...
[cont-init.d] 99-container-init: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

2019/06/06 08:44:44 Using in-memory storage
2019/06/06 08:44:44 [SMTP] Binding to address: <IP_ADDRESS>:1025
[HTTP] Binding to address: <IP_ADDRESS>:8025
2019/06/06 08:44:44 Serving under http://<IP_ADDRESS>:8025/
Creating API v1 with WebPath:
Creating API v2 with WebPath:

Thanks for this. Let me think about it for a few hours. My initial thought is that I am just relying on Docker to always work the same way it usually does, and what I can do is force it to create the directories on initial bootup like I do with some of the /var folders in /data.

OK, there will be a tiredofit/freepbx:kylesmith63 up shortly that upon starting up the container for the first time redoes the same commands that is done in the Dockerfile to create /home/asterisk and /data/home/asterisk with the symbolic link. Let's see if this works for you.

Gave it a try and seem to get the same errors as previous
No /etc/asterisk/asterisk.conf file detected. Installing...Writing /etc/asterisk/asterisk.conf...Done
Checking if Asterisk is running and we can talk to it as the 'asterisk' user...Error!
Error communicating with Asterisk.  Ensure that Asterisk is properly installed and running as the asterisk user
Asterisk does not appear to be running
Try starting Asterisk with the './start_asterisk start' command in this directory
+ [[ TRUE = \F\A\L\S\E ]]
+ [[ TRUE = \f\a\l\s\e ]]
+ '[' '!' -f /usr/sbin/fwconsole ']'
+ echo '** [freepbx] Can'\''t seem to locate /usr/sbin/fwconsole.. Exitting'
+ exit 1
** [freepbx] Can't seem to locate /usr/sbin/fwconsole.. Exitting

came back to this the other day and the issues seems to have fixed itself, I now have a fully working freepbx container. Thanks for your time looking into this!


fix: spawn tasks callback handler

Description
This PR fixes a possible bottelnack when handling callbacks.
When receiving a callback request, now we spawn a tokio task instead of waiting for the response of the given client.
This allows a faster execution of concurrent callbacks.
Related to: https://github.com/kubewarden/policy-fetcher/pull/171
Contributes to fix https://github.com/kubewarden/policy-server/issues/692

More fixes are coming!


style(frontend): update Hero buttons to new compact style

Motivation
We update the new ButtonHero style and we use it throughout the buttons in the Actions component.

Unsollicited feedback: from having a look at the screenshots, something in the aligment feels off. But I'm guessing there will be other PRs after this one.

Correct, the token logo is not central, but that will be in another PR


Nightly builds against Pekko main are failing since August

This seems to happen somewhat reliably with a problem in the protobuf-v3 snapshot jar? Or maybe somethings wrong with the name encoding?
E.g.
https://github.com/apache/incubator-pekko-http/actions/runs/5816195216/job/15768928396#step:7:404
Caused by: java.io.IOException: Error accessing /home/runner/.cache/coursier/v1/https/repository.apache.org/content/repositories/snapshots/org/apache/pekko/pekko-protobuf-v3_2.12/1.1.0-M0%2B25-d6ddba13-SNAPSHOT/pekko-protobuf-v3_2.12-1.1.0-M0%2B25-d6ddba13-SNAPSHOT.jar

@jrudolph I have https://github.com/apache/incubator-pekko/issues/685. I think we might need to patch sbt-assembly to change how it sets zip64 headers in the output jar file.

No need to create an issue, it's a JDK bug.

No need to create an issue, it's a JDK bug.

That may be true but its easily solvable by just not creating Zip64 encoding for files inside jar unless it's needed (which is what my PR does)

Btw. the issue in the latest nightly is this:
[error] Caused by: java.util.zip.ZipException: Invalid CEN header (invalid extra data field size for tag: 0x4000 at 787)

i.e. just a broken  extra field entry in many files.

https://github.com/apache/incubator-pekko-http/actions/runs/6594629032 passed


Fractal sagas as in redux-elm

Hello,
I'm looking for a way to apply a saga to a single reducer, and not to the entire store through the enhancer.
This is only conceptual, as every reducer is then connected to the store.
I am organizing my application in a fractal way, where every reducer is property of the component and inside a component directory structure.
This is already working in redux-elm, where an Updater (which is the Elm concept of a reducer) "refers" to a component-wise saga.
I'm looking for a way to do this without depending on the the redux-elm package, like a function to call in every reducer:
function * componentSaga() {
  // saga for the component actions
}

function reducer(state = initialState, action) {
  callSaga(state, action, componentSaga)
  // normal reducer logic here
}

Is there already an equivalent of the callSaga fictional function?

see http://yelouafi.github.io/redux-saga/docs/advanced/UsingRunSaga.html for manually starting Sagas
It's not recommended to do such calls inside a Reducer. If your component architecture supports some lifecycle events  you can hook the runSaga call inside some  'component loaded' lifecycle method

Hello, thanks for the response and for the documentation link (have to admit I missed that one).
Could you elaborate on the reason why it's not recommended to do such calls inside a Reducer?
Seems that it's the approach used in in redux-elm by @salsita, am I wrong?
If you are not familiar, it binds every reducer with its relative saga, but actually it makes sure that there are no double-triggers with its way of propagating actions. Is that the main concern?
thanks!


Use --precise N.N for a git dependency causes odd panics

panicked at 'index 0 and/or 8 in 0.3.17 do not lie on character boundary', ../src/libcore/str/mod.rs:1284

I think this is a dupe of https://github.com/rust-lang/cargo/issues/2094, so closing in favor of that.


HalideIR source code throw a runtime error:left shift of negative value -1

In HalideIR source code , the 32 rows in file IR.cpp :
Expr IntImm::make(Type t, int64_t value) {
internal_assert(t.is_int() && t.is_scalar())
<< "IntImm must be a scalar Int\n";
internal_assert(t.bits() == 8 || t.bits() == 16 || t.bits() == 32 || t.bits() == 64)
<< "IntImm must be 8, 16, 32, or 64-bit\n";

// Normalize the value by dropping the high bits
value <<= (64 - t.bits());
// Then sign-extending to get them back
value >>= (64 - t.bits());

std::shared_ptr<IntImm> node = std::make_shared<IntImm>();
node->type = t;
node->value = value;
return Expr(node);
}

if value is negative, value <<= (64 - t.bits()) will cause a runtime error.

can I modify the code in the 32 rows like this:
value =(uint64_t) value << (64 - t.bits());

The code itself is correct and left shift of integer value is well defined. Can you try to update it as
value <<= static_cast<int64_t>(64 - t.bits());

I try to update the code as you say,it still causes the runtime error while the  value is negative,because the type of value is int64_t, so the high bit represents sign, and the left shitf may change the sign of the number. so  I modify the code like this to cast the value to uint64_t :
value =(uint64_t) value << (64 - t.bits());

let us move further discussion to https://discuss.tvm.ai/


Error during installation in a dependent module ssl-client

docker-compose build
...
[sslclient]     Reload START
Skipping preload - directory does not exist.
Load started on 06/10/2021 17:58:18
ERROR #5012: File '/usr/irissys/mgr/.modules/IRISAPP/sslclient/1.0.3/src/community/utils/SSLClient.xml' does not exist
Detected 1 errors during load.
ERROR #5012: File '/usr/irissys/mgr/.modules/IRISAPP/sslclient/1.0.3/src/community/utils/SSLClient.xml' does not exist
[sslclient]     Reload FAILURE - ERROR #5012: File '/usr/irissys/mgr/.modules/IRISAPP/sslclient/1.0.3/src/community/utils/SSLClient.xml' does not exist
ERROR #5012: File '/usr/irissys/mgr/.modules/IRISAPP/sslclient/1.0.3/src/community/utils/SSLClient.xml' does not existThe command '/bin/sh -c iris start IRIS      && iris session IRIS < iris.script     && iris stop IRIS quietly' returned a non-zero code: 1
ERROR: Service 'iris' failed to build : Build failed

We'll check what's going on with the SSLClient. Thanks for sharing

fixed on issue from intersystems-community/ssl-client#2
https://github.com/intersystems-community/ssl-client/issues/2


Change mouse.ready to event syntax

mouse.onready = function(){}

Also change mouse.changeCostume()'s code to incorporate the new syntax

Changing it won't help make it more efficient, leaving as is


Line merging

Hello,
Is it possible to merge lines in some columns. For example, I want to merge B2 and C2 only. B1 and C1, B3 and C3 will not merged.

$xlsx->mergeCells('B2:C2');
$xlsx->mergeCells('B1:C1');

Thank you for the response Shuchkin, SimpleXLS is wonderful. Thank you so much!


System.Linq.Expressions is unavailable

Some libraries (like Newtonson.Json and CSLA .NET) use System.Linq.Expressions to optimize/avoid the use of reflection.
Currently these libraries won't work in Blazor because it appears that System.Linq.Expressions doesn't work. Perhaps just in the mono interpreter, perhaps due to another reason. In any case, this is a problematic limitation.
Note: Newtonsoft.Json appears to work when serializing simple/primitive types, but not when working against complex/custom types.

Duplicate of #356 ?
You may found a workaround in this thread for this issue.


Next steps

Hi,
Thanks for awesome cocoa pod!
Do you have any plans or ideas about future releases? What about Swift 4 support?

Added support for Swift 4.0
If you have any ideas for feature releases, you are welcome to write them


Update home screen on the app start

This PR closes #770.
Previously SceneDelegate provided Risk equals nil to HomeIntercator when starting the application, HomeIntercator calculated RiskLevel as .unknownInitial if Risk is nil and we see "grey" screen. Then we're getting updated Risk from riskProvider and it triggers update ui of home screen with new Risk. That's why we see this quick ui update from "grey" to another risk.
This PR removed default Risk from HomeInteractor, so only riskProvider is responsible for providing Risk for the app. When app starts, Risk is nil and we don't show any risk cell, when we're getting updated Risk from riskProvider we update home screen.
Please review this PR carefully, thanks.
Updated
Also this PR fixes issue when risk detail screen shows inactive state, but home screen doesn't

There are some good enhancements in here that we'd like to get in as soon as possible. We'd like to merge it into staging though. I spoke with Marc and we elected to not rebase and force-push this branch but cherry-pick the changes to another PR, #874 That PR is WIP though as we'd need feedback before marking it as ready.
I will put this PR on hold for now.

Hi @SebastianWild ,
The PR #874 is merged. How we can proceed for this PR? cc @aleksandr-tikhonov

@haosap, @SebastianWild , #874 has all changes of this PR, so I think we can just close this PR.


[Enhancement] Bitmap-based key set for mark-and-sweep GC

In the case of a complex changing graph, a tracing-based GC may be useful. If I want to do mark-and-sweep GC to a slot map, I can use another container to store all the keys that the slotmap contains, use another hash set for marking, recursively mark, then delete the keys that are not marked. Using a bitmap would be more efficient than using hash set.
Slotmap could provide a key set that's implemented by a bitmap. The key set will need these operations:

Inserting a key.
Test whether it contains a key.
Clean a slotmap based on the keyset. The elements with keys that are not in the keyset are removed.
The bitmap only cares about the index part of the key (if version is included, the bitmap will be too large). It may give wrong result for a stale key, as a performance tradeoff.

When I want to do a mark-and-sweep GC, I can create a new keyset, mark the elements, then clean the slotmap using the keyset.
Two slotmaps may reference each other. A GC process may involve multiple slotmaps and multiple keysets. To make the keyset convenient to use, it should not indirectly borrow the slotmap. It may contain invalid keys but that would still not break memory safety.

Related article Tracing Garbage Collection for Arenas.
Could also provide mark-and-compact GC, given a bitset of living keys, output the a hash map of the moved keys.


Speech To Text error

The STT service doesn't work in the application , while debugging the following error is resulted-"Uncaught TypeError: Cannot read property 'callRetrieveAndRank' of undefined "

This has been fixed now

I found these errors :

speech-to-text.js:47 Uncaught TypeError: Api.setWatsonPayload is not a function
at Object.micON (speech-to-text.js:47) ==> Api.setWatsonPayload({output: {text: ['Accept the microphone prompt in your browser. Watson will listen soon.'], ref: 'STT'}});
at HTMLDivElement.onclick ((index):42)

text-to-speech.js:23 Uncaught TypeError: Cannot set property 'value' of null
at text-to-speech.js:23 ==> (button.value = 'ON';)
at text-to-speech.js:109

Can you help me please ??

Dear Sir Steven,
Please, find attached my first chatbot project. Please take a look in order to resolve the error and run both STT and TTS services.
Thank you very much.
Chatbot.zip

@AlaGarali There are numerous errors in your code, I fixed a few, but there are too meany errors for me to fix ATM. Please be careful with renaming, you need to change setWatsonPayload to setResponsePayload in api.js. If you use Firefox or Chrome open developer mode and you will see the errors on the client side, here are some:

I renamed setWatsonPayload to setResponsePayload and that error is fixed.
What are the others errors that your have fixed yesterday ?
Please find attached the errors on the client side (Chrome developer mode).
Thanks.

Dear @stevenpkg,
I'm trying to build Customer Support Agent with IBM Watson Conversation, STT, TTS and Discovery Services and uploading FAQs documents (.docx, .pdf, .html) to Discovery service.
I would like to know, how can I have the right answer of a question asked, from documents (html, docx, pdf, ...) uploaded on discovery service ? How can I configure discovery service or discovery.query(){} (code below) to return the best answer of user's question ? Should I use another service such as WKS or not ? Please find below my discovery.js file code:
function sendToDiscovery(query) {
return new Promise(function(resolve, reject) {
var DiscoveryV1 = require('watson-developer-cloud/discovery/v1');
var discovery = new DiscoveryV1({
  username: process.env.DISCOVERY_USERNAME,
  password: process.env.DISCOVERY_PASSWORD,
  version_date: '2018-03-05'
});

var environment_id = process.env.ENVIRONMENT_ID;
var collection_id = process.env.COLLECTION_ID;
var params = {query: query,
    //natural_language_query: query
    //filter: score>0.8,
    highlight: true,
    passages_count: 1,
    passages: true,
    return_fields: ['text'],
    count:1,
    return: 'text'
    //aggregation:
    //'[term(enriched_text.entities.text).term(enriched_text.sentiment.document.label),' +
    //'term(enriched_text.categories.label).term(enriched_text.sentiment.document.label),' +
    //'term(enriched_text.concepts.text).term(enriched_text.sentiment.document.label),' +
    //'term(enriched_text.keywords.text).term(enriched_text.sentiment.document.label),' +
    //'term(enriched_text.entities.type).term(enriched_text.sentiment.document.label)]'
}
discovery.query({
  environment_id: environment_id,
  collection_id: collection_id,
  configuration_id: process.env.DISCOVERY_CONFIGURATION_ID,
  query : params
}, function(error, response) {
    if (error) {
      reject(error);
    } else {
      if (response.results == null) {
        console.log("The call to the Discovery service is complete, but he has not returned any replies. Check the format of the data injected into the Discovery service.");
        reject(error);
      } else {
        console.log(response.results[0].text);
        resolve(response.results[0].text);
      }
    }
});

});
}
module.exports = sendToDiscovery;
Could you help me please ?
Best regards.


'Running a web server' should go under Tutorials

The page Running a web server on the Apify platform is standalone and seems to be a specific solution to a very specific problem. IMHO it is a how-to guide and should go under Tutorials.
(Aside the fact that it is also platform-specific and long-term might not even belong to the Academy as we envision it.)

And readers suggest changes to this page:

Could be useful to suggest to start from the crawlee-puppeteer-chrome template.
The code is outdated. The line await Actor.init(); should be added to the beginning of the file.
The line const browser = await Actor.launchPuppeteer(); should be replaced with const browser = await launchPuppeteer(), with the import import { launchPuppeteer } from "crawlee";.
The POST URL should be relative.

import { Actor } from "apify";
import express from "express";
import { launchPuppeteer } from "crawlee";

await Actor.init()

[...]

app.get("/", (req, res) => {
    [...]
        <form method="POST" action="/add-url">
    [...]
});

app.post("/add-url", async (req, res) => {
    const { url } = req.body;
    console.log(`Got new URL: ${url}`);

    // Start chrome browser and open new page ...
    const browser = await launchPuppeteer()
    [...]
});

[...]


fixed torch_attn that takes dimensions in a different order

F.scaled_dot_produc_attention documentation
xops.memory_efficient_attention documentation
The two different attention functions expect input with different dimension orders. I fixed the torch function input dimension order by calling transpose many times.
The "equivalent" code from the xformers  documentation reads query @ key.transpose(-2, -1) ( same as the native pytorch one) but it doesn't match their input dimensions specifications... I raised an issue for that

great catch! yes this looks about right. Maybe can we get a tiny model training to compare loss curves on a few steps? Afaik this should significantly impact the results for the better when using torch attn.

Oof thanks, good catch. We don't actually use this in training runs, I added it to allow testing on CPU (where xformers doesn't work).
Wouldn't hurt to have a (gpu) test  comparing different attention variants we use, though. If that's easy for you to add @jmercat that would be great.

just to be clear - the comparison I was talking about was PyTorch attn pre-fix vs. PyTorch attn post-fix. Just to make sure the fix is correct. I think there should be an impact there. But besides that I agree with achal, would be nice to have such a test comparing xformers, PyTorch, or whatever else we decide to support in the future

@jmercat do you think you could add a short test that compares the output of two attentions in this PR? If not, we should still merge this once you resolve conflicts, and open an issue for writing that test in a future PR.

seems like these changes r already in? @achalddave @jmercat  can we close this?


Polymer deploy copies .svn directories from [build_dir]/packages

At least on Windows, with an SVN checkout of dart, create_sdk makes links from [build_dir]/packages to dart/pkg, and so there are .svn directories in there.  Then when test.py runs polymer deploy on the generated tests from pkg/polymer, those long .svn paths get copied into the generated test directory.  This gives paths > 256 characters, even without really long generated test directories.
Solved for now by shortening the generated test paths for these tests.
I guess polymer.deploy should copy everything in a package.  So maybe we shouldn't have .svn files in [build_dir]/packages, so they shouldn't be links to dart/pkg.

All svn checkouts have been removed from the Dart checkout, and all checkouts of the main SDK repository are from git, so there should be no more .svn directories in sdk/pkg or sdk/third_party/pkg.


Configure Google fonts per page

Right now it's hard coded

Would also be interesting to have a convenient way to configure for all pages since I imagine that will be a common case for more complex multi-page apps.


Replacing content with zip file on v2 of a work produces error

Testing on qa with work https://sul-h2-qa.stanford.edu/works/301.
This work has about 400 files added via the zip file upload on v1.
For v2, I selected the option to replace this content with another single zip file and was unsuccessful.

Clicked pencil to edit item. Entered version comment for tests where I was clicking the deposit button.
Chose option to upload zip file.
Either clicked the button to upload the zip file or dragged the zip file over. File appeared to upload properly -- green bar and check mark.
Clicked either save as draft or deposit -- tested this for each upload option, so 4 combinations total.
In all for 4 cases, I was shown the screen with the box that says "We're sorry but something went wrong."

This appeared to trigger a HB error every time as well: https://app.honeybadger.io/projects/77112/faults/90963970

[8464f0d4-e244-4f81-9b1b-7b335977b230] NoMethodError (undefined method `[]=' for nil:NilClass

      existing_params['file'] = existing.file_attachment.blob.signed_id
                     ^^^^^^^^^^):
[8464f0d4-e244-4f81-9b1b-7b335977b230]
[8464f0d4-e244-4f81-9b1b-7b335977b230] app/services/new_version_parameter_filter.rb:20:in `block in filter_attached_files'
[8464f0d4-e244-4f81-9b1b-7b335977b230] app/services/new_version_parameter_filter.rb:18:in `filter_attached_files'
[8464f0d4-e244-4f81-9b1b-7b335977b230] app/services/new_version_parameter_filter.rb:8:in `call'
[8464f0d4-e244-4f81-9b1b-7b335977b230] app/controllers/works_controller.rb:67:in `update'


docs(README): standardize

README
@TrySound Is there a way to setup options in webpack.config.js aswell or is ìnline` usage required ? e.g
webpack.config.js
{
   test: /\.worker\.js$/,
   use: { loader: 'worker-loader' , options: { inline: true } }
}

If so I would like to add/update this in the docs, otherwise should be g2g :blush:
Fixes #62

@michael-ciniawsky Of course. getOptions works for both cases.

It was more of being a recommended path (.worker.js) we should document or not :) kk I will update then webpack.config.js is recommended in general, so it better anyways


Dataset for Stylization

Hi.
Thank you for sharing your nice work!
I have some questions about the dataset for stylization

Which dataset is used for stylization training?

Did you use Wikiart dataset for the style dataset?

How many style images did you use for the training?

I'm looking forward to hearing your reply!
Thank you

Hi,

Most style images are from _https://www.kaggle.com/datasets/antoinegruson/-wikiart-all-images-120k-link_.
Yes. (Above)
Usually around 20 style images for a NeRF. More style images require longer training time to converge. If you want to stylize a scene quickly, you can train with a single style image within 10 mins and then render the results.
I hope that would be helpful to you.

Thank you!

Hi,

Most style images are from _https://www.kaggle.com/datasets/antoinegruson/-wikiart-all-images-120k-link_.
Yes. (Above)
Usually around 20 style images for a NeRF. More style images require longer training time to converge. If you want to stylize a scene quickly, you can train with a single style image within 10 mins and then render the results.

I hope that would be helpful to you.

Thanks for the reply!
Could u please provide a copy of the style images used to train the model in the paper?

The copyright of dataset belongs to Kaggle.
You can download it through:
wget https://3romcg.bn.files.1drv.com/y4m_wXlfBvwva8k9WU4o0ZeFOACIdLr3dN1zxPtGKNmouKJp9jZW4P5K1dDY2T14xl4lAywbFquMxowH4QrgIC5sNnvOMzkviXvMeQqefFxyC05Xaeov3jNW4OfhaFE_-8rtWzyMTuGxuF5uM1XyE_BPzEXg_M7QKE1zn-fqniAOYYnBPj7GeEqQNDf744Wq2C8PJF7ibbc9S6fKWUKoUPtDQ -O style120_data.zip
If you have connection issues, let me send it to you by email.

The copyright of dataset belongs to Kaggle.
You can download it through:
wget https://3romcg.bn.files.1drv.com/y4m_wXlfBvwva8k9WU4o0ZeFOACIdLr3dN1zxPtGKNmouKJp9jZW4P5K1dDY2T14xl4lAywbFquMxowH4QrgIC5sNnvOMzkviXvMeQqefFxyC05Xaeov3jNW4OfhaFE_-8rtWzyMTuGxuF5uM1XyE_BPzEXg_M7QKE1zn-fqniAOYYnBPj7GeEqQNDf744Wq2C8PJF7ibbc9S6fKWUKoUPtDQ -O style120_data.zip
If you have connection issues, let me send it to you by email.

Thanks for the reply. I downloaded it successfully.  it has 120 images in total, as for llff dataset, did you just randomly select 20 images from 120 images for a scene to train a nerf?

The copyright of dataset belongs to Kaggle.
You can download it through:
wget https://3romcg.bn.files.1drv.com/y4m_wXlfBvwva8k9WU4o0ZeFOACIdLr3dN1zxPtGKNmouKJp9jZW4P5K1dDY2T14xl4lAywbFquMxowH4QrgIC5sNnvOMzkviXvMeQqefFxyC05Xaeov3jNW4OfhaFE_-8rtWzyMTuGxuF5uM1XyE_BPzEXg_M7QKE1zn-fqniAOYYnBPj7GeEqQNDf744Wq2C8PJF7ibbc9S6fKWUKoUPtDQ -O style120_data.zip
If you have connection issues, let me send it to you by email.

Me again lol.
Could you plz tell me

how many style images used to train the VAE in the paper.

is the style images in the ./small_style (for stylized nerf) a subset of ./all_styles (for VAE)?


[Low impact] Currently selected revision should not be clickable

Clicking on the currently selected revision from the Edits list will reload the page needlessly. Revision cell should not be click-able if it is the currently selected revision. This is disorienting for the user because it will reload the page, move the viewport to the top of the page, and then autoscroll back down to where the user already was.

/cc @irfanpirbhai


SECURITY: Fix adding X_FRAME_OPTIONS

@kborer https://github.com/MetLifeLegalPlans/zygoat/pull/82 didn't add the new header to settings. This change works.

probably related to #85

That's right. I couldn't figure out why redbaron would do that.


Numberpad keys don't jump to the selected screen

This code doesn't work properly when using numberpad keys to jump to a screen from the preview image:
https://github.com/mikeclayton/FancyMouse/blob/0cf930d7d044df52ac74393827016c84755a901e/src/FancyMouse/UI/FancyMouseForm.cs
 case (>= Keys.D1 and <= Keys.D9) or (>= Keys.NumPad1 and <= Keys.NumPad9):
     // number keys 1-9 or numpad keys 1-9 - move to the numbered screen
     var screenNumber = e.KeyCode - Keys.D0;
     if (screenNumber <= screens.Count)
     {
         targetScreenNumber = screenNumber;
     }

We should handle number keys separate from numberpad keys, and subtract Keys.NumPad0 for numberpad keys, not Keys.D0 - numberpad keys don't actually do anything at the moment as a result...

Fixed in #40

Fixed in #40 / FancyMouse v0.0.18-preview


Versioning atlas versions

I think we should also have a way of nicely integrating versioning of this package together with versioning that I hope GIN can provide on the packages deployed there. If we introduce new features in the API they could require the latest version of an atlas to be redownloaded for the user that has an outdated one. Viceversa, maybe sometimes we should ensure that outdated API versions ask for legacy versions of the atlases.
@adamltyson @FedeClaudi any thought on this? Does this make sense?

That's a good idea, and it's an issue that I've come across with amap and cellfinder. Until now I've avoided it because they're not yet at a stable version. However, this project could reach stability, and still undergo lots of changes to the atlases.
Do we want to start trying to support old versions of the API/atlas? This could be a headache avoided with a message asking people to upgrade.

I think for now, since things will be changing a lot and rapidly we can just ask people to us the updated version. Once development slows down we can start supporting different versions?

Youp, I also agree that priority is to automatically detect if it is outdate and trigger redownloading. I was not thinking about supporting old versions of the atlases, just to somehow map in the brainatlas-api version the version of the atlases it is working with. This way matching the correct (old) version of the atlas to be used is not that different from updating to the most recent one

In this direction, probably it make sense to put the scripts to generate the atlases back in a separate folder of this repo, so that they are versioned together?

Could each atlas just have unique metadata entry, so we know what version of what atlas we are using (like Allen_10um_2020-05-27a)?
We can prompt people to upgrade to a new version of the API (and therefore atlases) with something like this in __init__.py
__name__ = "brainatlas-api"

import luddite
from packaging import version

most_recent_version = luddite.get_version_pypi(__name__)

if version.parse(__version__) < version.parse(most_recent_version):
    print(
        f"This version of {__name__} ({__version__}) is not the most recent "
        f"version. Please update to v{most_recent_version} by running: "
        f"'pip install {__name__} --upgrade'"
    )

In this direction, probably it make sense to put the scripts to generate the atlases back in a separate folder of this repo, so that they are versioned together?

Maybe, but this could stop being useful as soon as anyone else makes an atlas that we incorporate.

I think we are happy with how things are now? Should we close?


License?

What license is this project available under? :D

added - do whatever you want with it, or feel free to hire me =D


Make PyObject subclass Generic & expose it to users

Discussed in https://github.com/samuelcolvin/pydantic/discussions/3833

Originally posted by rsayn February 19, 2022
Hello,
I was thinking that we could add type hinting to PyObject in order to enable editor suggestions based on the actual runtime object that is passed or imported.
I experimented a bit locally and I came up with the following code:
# inside types.py
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PYOBJECT TYPE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class _PyObject(Generic[T]):
    validate_always = True

    @classmethod
    def __get_validators__(cls) -> 'CallableGenerator':
        yield cls.validate

    @classmethod
    def validate(cls, value: Any) -> T:
        if callable(value):
            return cast(T, value)

        try:
            value = str_validator(value)
        except errors.StrError:
            raise errors.PyObjectError(error_message='value is neither a valid import path not a valid callable')

        try:
            return cast(T, import_string(value))
        except ImportError as e:
            raise errors.PyObjectError(error_message=str(e))

if TYPE_CHECKING:
    PyObject = Type # instead of `Callable`
else:
    class PyObject(Generic[T], _PyObject[T]):
        pass

This is fully backwards compatible with the current PyObject signature, the only adjustment would be using PyObject[Any] instead of the plain PyObject.
Attaching screenshot of working editor suggestions in VS Code:

This also suggests constructor arguments properly:

The other change I made here was to move the PyObject definition from the "else" branch to the actual codebase. The reason for this is that users could then be able to subclass _PyObject, should they need to customize the validation internals.
Currently, when trying to subclass PyObject, static checkers would complain because the actual implementation is not available at type checking time.
EDIT
Now that I'm opening the issue, I notice that in the example I used the type annotation should read PyObject[Type[MyClass]] instead of PyObject[MyClass]... My bad 😄
Also, the "type check" time PyObject could be set to Union[str, Callable] rather than Type.

As commented in https://github.com/pydantic/pydantic/discussions/3833#discussioncomment-5759263, If I understand correctly, I think you can get the behavior you want via cls: typing.Type[MyClass] = MyClass. Does PyObject have some different behavior to this that is important to preserve? (PyObject has been removed in v2.)
Since that seems to be the right solution, this issue is somewhat stale, and PyObject has been removed in v2, I am going to close this issue. But please comment here if the answer is not sufficient and you would like the issue re-opened.


:nth-child

Hi there,
we're trying to generate css selectors automatically and use them with HTMLRewriter (on Cloudflare workers) / lol-html.
For a guaranteed selector generation we need to use :nth-child selectors in some cases. I completely understand that this could be impossible due to the streaming nature of lol-html.
Did you approach (and maybe have a workaround) for such a case?
Thanks and all the best
Alex

Hi Alex,
It's possible to implement nth-child selector in streaming parser. Though, we decided to not implement it initially as it will significantly complicate the selectors VM. But, since there is a demand for this, we might consider doing that.
For now, the only workaround that comes to my mind is to specify a selector for children (e.g. #parent > li) and manually count n-th element in your code.

Hi @inikulin,
that sounds great! Please let me know if you decide to implement it.
So you mean we should catch a selector, parse it e.x. #parent > li:nth-child(3) and set it in a piece of code like this:
class NthChildRewriter {
  childIndex: number;
  index: number;

  constructor(childIndex: number) {
    this.childIndex = childIndex;
    this.index = 1;
  }

  // TODO need to find typings for HTMLRewriter
  element(element) {
    if (this.index === this.childIndex) {
      element.setAttribute('this was our child!');
    }

    this.index++;
  }
}

new HTMLRewriter.on('#parent > li', new NthChildRewriter(3)).transform(htmlResponse);

This could work, but would get very complicated especially for nested child selectors e.x. #parent > div:nth-child(2) > li:nth-child(3). This way we would need multiple loops inside of each other - don't know if it would work.

Thanks for the tip with counting the elements in my code! Here is a workaround (probably not the most performant way but it works):
const sanitizeSelector = (selector: string) => {
  const nthChildRegex = /:nth-child\(\d+\)/g;
  const digitRegex = /\d+/;

  const matches = selector.match(nthChildRegex)

  if (matches) {
    const index = matches.map(nthChild => nthChild.match(digitRegex))
      .flat()
      .map(digit => parseInt(digit))
      .reduce((prev, curr) => prev * curr);

     const simplifiedSelector = selector.replace(nthChildRegex, '');
     return { index, selector: simplifiedSelector };
  }

  return {index: 1, selector};
}

class NthChildRewriter {
  childIndex: number;
  index: number;

  constructor(childIndex: number) {
    this.childIndex = childIndex;
    this.index = 1;
  }

  // TODO need to find typings for HTMLRewriter
  element(element) {
    if (this.index === this.childIndex) {
      element.setAttribute('this was our child!');
    }

    this.index++;
  }
}

const selector = '#parent > li:nth-child(3) > div:nth-child(2)

new HTMLRewriter.on('#parent > li', new NthChildRewriter(3)).transform(htmlResponse);

This works also with nested nth-child selectors as the indices of the inner loops can be safely multiplied as the parser runs through the elements by depth.
Hope this helps some others - maybe it's still possible to add the native feature.

@BraunreutherA Didn't notice that you using it from Workers. It's worth opening a feature request in the Community Portal. So, Workers team will be aware about the feature request as well (this repo is for the HTMLRewrite back-end only).

@inikulin alright, thanks! I thought what gets changed here will get into the worker :)

Identical requirement we are having. We also generate css selectors and need to find a way to select element based on that in Workers. @BraunreutherA thanks for raising this as well as sharing the code snippets! Could I reach out to you in case I do need some clarifications on your code?

@toinbis  sure - if you have questions feel free to ask!


Use timeProvider.time() in SyncTracker instead of System.currentTimeMillis

Coverage remained the same at 46.943% when pulling f92bbf4bebc81fdb5f09864e60c76f5b11e53dd7 on syncFix into 82d1be3222144b1ba9dcbafe9a3ff12e6f7df8dc on master.


Invalid timestamps on iOS

On iOS (using Cordova webview), the console is flooded with the message

Invalid timestamps detected. Time step between successive gyroscope sensor samples is very small or not monotonic

Rows 5703 and onwards:
                var deltaS = timestampS - this.previousTimestampS;
                if (deltaS <= Util.MIN_TIMESTEP || deltaS > Util.MAX_TIMESTEP) {
                    console.warn('Invalid timestamps detected. Time step between successive ' +
                    'gyroscope sensor samples is very small or not monotonic');
                    this.previousTimestampS = timestampS;
                    return;
                }

This probably means the timestamps are invalid, or at least not changing with time...

I don't have an iOS device handy (maybe a Cordova webview thing as well?), but do you know if the timestamps are not being updated, or if the delta between them are too small? iOS + Cordova could be an edge case and may need more data on what these values are

I'm also experiencing the exact same symptoms. The code works fine when opened in Safari, and the webvr controls appear nice and the head tracking also works. However, inside cordova there's a barrage of errors about invalid timestamps. Head-tracking still works though I'm guessing the predictive filter would be broken.

any news on this issue? when will next polyfill release be ready?

The latest versions of webvr polyfill contain this fix, anything v0.10.3 and up as far as I can tell

I am working with the 8th wall and aframe. I am using  for displaying UI. It is working perfectly in Android but it showing the loading page on iPhone Safari.
Following error is getting
webvr-polyfill: Invalid timestamps detected: Timestamp from devicemotion outside expected range.

iOS reports timestamps out of order sometimes, that's on Safari, but should still work. I suspect an issue with 8th wall or aframe

any solution? i'm using 8thwall and i have the same problem! please help!

Any news on this?

Might be worthwhile making a new issue for 8th wall specifically with a reproducible case for others; invalid timestamps are a byproduct of iOS's devicemotion implementation and not necessarily related to any 8th wall issues

The latest versions of webvr polyfill contain this fix, anything v0.10.3 and up as far as I can tell

I also ran into this warning when using 8th Wall. After inspecting the A-Frame dist, the dependency is "webvr-polyfill": "^0.10.12" on A-Frame v1.2.0 released 11 days ago (and at least 1.1.0 before that for 8frame-1.1.0 users). 8th Wall uses a fork of the A-Frame dist and the same ^0.10.12 dependency is carried over.
I don't have more information since the warning should be resolved past 0.10.3, but this would point towards A-Frame over 8th Wall for those looking to open issues with these specific frameworks.

Hi @kotavy,
for the 8th wall please include the following codes in head.html.

I am testing a project using aframe. Tried both 8th Wall and Mindar.js build, they both do the same crashes and give the same polyfill error and invalid timestamps on an iPhone13Pro iOS 15.3.1 Safari. the same does not happen on an old iPhone 6s iOS 14.4.2.
Is there a way we can make sure Aframe or 8thWall the tracking code will use our designated version of polyfill?
Thanks.


Support latest EKS optimized AMI

https://aws.amazon.com/about-aws/whats-new/2018/08/new-amazon-eks-optimized-ami-and-cloudformation-template-for-worker-node-provisioning/

Fixed with #5.


Azure OpenAI

we need support for azure openaI

https://github.com/Azure-Samples/openai-dotnet-samples/blob/main/chatgpt-hiking-recommendations.ipynb


time_per_step() should return f64, not Duration.

Currently, the Estimate::time_per_step returns Duration. This limits the precision and range that time per step can represent – Duration always stores multiples of nanosecods. Moreover, if your step takes less than nanosecond, time per step would be 0, and the ETA would be always 00:00:00. This is how I discovered the bug.
TLDR: Here is list of speeds that indicatif currently supports: :)
…, ¼GB/s, ⅓GB/s, ½GB/s, 1GB/s, ∞YB/s.

I doubt this was a problem with Duration. After looking at the code it uses f64 in the buf vector instead of Durations. Duration supports addition and there is no need to convert to f64 before summing it up.
Floats are imprecise by construction. The time API works on nanoseconds internally and so should we. conversion to f64 should be the last step.

Perhaps I've made a mistake by suggesting a solution in the issue's title instead of just describing it.

After looking at the code it uses f64 in the buf vector instead of Durations. Duration supports addition and there is no need to convert to f64 before summing it up.

I think storing actual durations as Duration would be perfectly fine. It's different here though — what we store here is not a duration, but rather speed^−1 — duration divided by number of steps. So the loss of precision happens anyway, in the moment of division itself and by rounding the time_per_step to nanoseconds. By the way, f64 is able to store a number of nanoseconds losslessly up to about 7 months (and µs to about 500 years), so I wouldn't worry too much about the loss of precision.

I mean why store the result of a lossy calculation instead of both values for each step. Then sum the components separately and divide afterwards.
Although I'm wondering why its not just using 0.9*last + 0.1*current for estimating instead of this buffer construction.

Encountered this issue also. The nanosecond precision used by Duration is really not enough when dealing with time per step calculations. Rates of >1e9/s can be relatively easy to achieve when dealing with things like reading bytes from modern SSDs. Using f64 specifically to compute Estimate::time_per_step() is quite reasonable, as it is not dealing with precise durations.

I'm happy to review a PR for this.

Incoming!