Theme Patch

environment

OS: macOS
What is your airline configuration:

"       .o.        o8o           oooo   o8o
"      .888.       `"'           `888   `"'
"     .8"888.     oooo  oooo d8b  888  oooo  ooo. .oo.    .ooooo.
"    .8' `888.    `888  `888""8P  888  `888  `888P"Y88b  d88' `88b
"   .88ooo8888.    888   888      888   888   888   888  888ooo888
"  .8'     `888.   888   888      888   888   888   888  888    .o
" o88o     o8888o o888o d888b    o888o o888o o888o o888o `Y8bod8P'

" Display all buffers when there is one tab open
let g:airline#extensions#tabline#enabled = 1

" enable powerline fonts
let g:airline_powerline_fonts = 1

" Tabline seperators
"let g:airline#extensions#tabline#left_sep = ''
"let g:airline#extensions#tabline#left_alt_sep = ''
"let g:airline#extensions#tabline#right_sep = ''
"let g:airline#extensions#tabline#right_alt_sep = ''

" Status line seperatros
"let g:airline_left_sep = ''
"let g:airline_right_sep = ''

" Themes
"let g:airline_theme = 'light theme'
" let g:airline_theme = 'badwolf'

let g:airline_theme='badwolf'
" Defines how the Filename in the tabline buffer is shown
let g:airline#extensions#tabline#formatter = 'unique_tail'

" Shows the Current Vim Mode. Instead of INSERT it just shows I for example.
  let g:airline_mode_map = {
      \ '__'     : '-',
      \ 'c'      : 'C',
      \ 'i'      : 'I',
      \ 'ic'     : 'I',
      \ 'ix'     : 'I',
      \ 'n'      : 'N',
      \ 'multi'  : 'M',
      \ 'ni'     : 'N',
      \ 'no'     : 'N',
      \ 'R'      : 'R',
      \ 'Rv'     : 'R',
      \ 's'      : 'S',
      \ 'S'      : 'S',
      \ '^S'     : 'S',
      \ 't'      : 'T',
      \ 'v'      : 'V',
      \ 'V'      : 'V',
      \ '^V'     : 'V',
      \ }

let g:airline_skip_empty_sections = 1

" Add the Battery Status to section z in statusline
let g:airline_section_z = airline#section#create(['linenr', ' %{battery#component()}'])

" Working Section Z
"let g:airline_section_z = airline#section#create([ 'linenr', 'maxlinenr', ' %{battery#component()}'])

" Show current buffer first
" let airline#extensions#tabline#current_first = 1

let g:airline_theme_patch_func = 'AirlineThemePatch'
  function! AirlineThemePatch(palette)
    if g:airline_theme == 'badwolf'
      for colors in values(a:palette.normal)
        let colors[3] = 'italic'
      endfor
    endif
  endfunction

if you are using terminal:

terminal: iTerm
$TERM variable: xterm-256color
color configuration (:set t_Co?): No
if you are using Neovim:
does it happen in Vim: Unknown

actual behavior
When running the patch pulled directly from the documentation I get airline: Could not find airline theme "badwolf"
This is exactly what's set in g:airline_theme: and removing the patch resolves the error. Ultimately, I am just trying to add italics to the badwolf theme, which I can do if I edit directly, but can't try because the patch can't seem to find the theme.
expected behavior
The patch should find the theme and apply the color.
screen shot (if possible)

Did you install vim-airline-themes?

Did you install vim-airline-themes?

https://github.com/vim-airline/vim-airline-themes

Yes and badwolf does work. It is set in my config.

Can you try to Set the airline_patch_func in an VimEnter auto command?

Am 16.07.2020 um 07:39 schrieb Brandon Shockley<EMAIL_ADDRESS>
Did you install vim-airline-themes?
https://github.com/vim-airline/vim-airline-themes
Yes and badwolf does work. It is set in my config.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@chrisbra
thanks.
@typkrft
autocmd VimEnter let g:airline_theme_patch_func = 'AirlineThemePatch'
function! AirlineThemePatch(palette) abort
  if g:airline_theme == 'badwolf'
    for colors in values(a:palette.normal)
      echomsg colors[4]
    endfor
  endif
endfunction
let g:airline_theme = 'badwolf'

We have confirmed that this configuration works fine.

@chrisbra
thanks.
@typkrft
autocmd VimEnter let g:airline_theme_patch_func = 'AirlineThemePatch'
function! AirlineThemePatch(palette) abort
  if g:airline_theme == 'badwolf'
    for colors in values(a:palette.normal)
      echomsg colors[4]
    endfor
  endif
endfunction
let g:airline_theme = 'badwolf'

We have confirmed that this configuration works fine.

This works exactly as expected. I really appreciate the help.

@chrisbra
Do we need to update the document like this?
diff --git a/doc/airline.txt b/doc/airline.txt
index 7408387..25cd739 100644
--- a/doc/airline.txt
+++ b/doc/airline.txt
@@ -158,7 +158,7 @@ values):

 * if you want to patch the airline theme before it gets applied, you can
   supply the name of a function where you can modify the palette. >
-  let g:airline_theme_patch_func = 'AirlineThemePatch'
+  autocmd VimEnter let g:airline_theme_patch_func = 'AirlineThemePatch'
   function! AirlineThemePatch(palette)
     if g:airline_theme == 'badwolf'
       for colors in values(a:palette.inactive)

@chrisbra
BTW, Do we need to update the document like this?
diff --git a/doc/airline.txt b/doc/airline.txt
index 7408387..25cd739 100644
--- a/doc/airline.txt
+++ b/doc/airline.txt
@@ -158,7 +158,7 @@ values):

 * if you want to patch the airline theme before it gets applied, you can
   supply the name of a function where you can modify the palette. >
-  let g:airline_theme_patch_func = 'AirlineThemePatch'
+  autocmd VimEnter let g:airline_theme_patch_func = 'AirlineThemePatch'
   function! AirlineThemePatch(palette)
     if g:airline_theme == 'badwolf'
       for colors in values(a:palette.inactive)

I think my issue may have been related to how I've broken up my configurations. Running the function as it's defined in the documentation works if it's in a config file sourced after my airline.vim config.


How to use oidc-client-js in frameworks which support server-side rendering?

How to use it together with next.js? Is it possible to be modified to be a universal oidc-client?

It's not designed for server-side.

Will it be designed for both server-side and client-side?

No.

OK...


feat: ruff as formatter

This PR intends to use ruff as a formatter, as we were already using it as linter.
As a consequence, this PR deprecates black and isort from the project, making dependencies/extensions/pre-commits a bit lighter.
I also updated some of the ruff lintr rules by taking them from here

Codecov Report

Merging #322 (24f894a) into main (e0297cb) will increase coverage by 0.28%.
The diff coverage is 16.66%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #322      +/-   ##
==========================================
+ Coverage   85.24%   85.52%   +0.28%
==========================================
  Files          87       87
  Lines        2053     2045       -8
==========================================
- Hits         1750     1749       -1
+ Misses        303      296       -7

Files
Coverage Δ

src/otg/gwas_catalog_sumstat_preprocess.py
73.33% <ø> (+4.58%)
:arrow_up:

src/otg/variant_index.py
77.77% <ø> (+4.09%)
:arrow_up:

src/utils/schemadocs.py
100.00% <ø> (ø)

src/airflow/dags/common_airflow.py
92.30% <80.00%> (+3.41%)
:arrow_up:

src/otg/cli.py
70.00% <0.00%> (ø)

src/otg/common/session.py
87.17% <0.00%> (+6.22%)
:arrow_up:

src/otg/datasource/gnomad/ld.py
75.00% <0.00%> (ø)

src/otg/ld_index.py
80.00% <0.00%> (ø)

src/otg/method/l2g/evaluator.py
38.70% <0.00%> (ø)

src/otg/l2g.py
56.45% <0.00%> (ø)

... and 2 more


404 on createmeta request during jira init

Describe the bug
During jira init, I get a 404 Not Found after choosing my default board:
⠴ Configuring metadata. Please wait...

REQUEST DETAILS
------------------------------------------------------------

GET /rest/api/2/issue/createmeta?projectKeys=PROJ&expand=projects.issuetypes.fields HTTP/1.1
Host: ...
Authorization: Basic ...

✗ Received unexpected response '404 Not Found' from jira. Please try again.

This used to work, but our Jira server has gone through some upgrades since I first initialized, and I was just testing out the init-flow from scratch today and noticed this failure.
While using my old ~/.config/.jira/.config.yaml, essentially everything still works.  There are some quirks / I've had to hand-fix a custom field or three, but that's pretty normal for Jira.
I'm not really sure how to diagnose this one further tbh, so I'm filing it in part just in case it's a server-version issue so others have something to see and follow.
And... it's entirely possible my jira-admins have locked something down on purpose, or added an incompatible plugin or something, but I'll also have to figure out how to track them down.  I'll update this if that turns out to be the case, but this CLI is the only way I retain my sanity with how slow our Jira setup is, so I really hope that's not the case.
Please provide following details

JiraCLI Version:

❯ jira version
(Version="1.5.1", GitCommit="0e0f82d52ef5a775d2cc662fbe38d9732b9b5c59", CommitDate="2024-01-20T10:48:06+00:00", GoVersion="go1.21.5", Compiler="gc", Platform="darwin/arm64")

Are you using Jira cloud or on-premise jira server?

Cloud, I think?  checking.
And note that since jira init is failing, so this is with an old already-working init config (but it matches the web UI as far as I can see):
SERVER INFO
-----------

Version:         9.4.17
Build Number:    940017
Deployment Type: Server
Default Locale:

What operating system are you using? Also mention version.

macOS Sonoma 14.4.1

What terminal are you using? Also mention version.

iTerm 2 Build 3.4.23

Oh bah.
We're not on cloud, we're on local.
Easy fix, sorry!


NGINX: In most recent Master, reconfigureAction is missing from ServiceController

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:
[X] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
[X] I have searched the existing issues and I'm convinced that mine is new.
[X] The title contains the plugin to which this issue belongs
Describe the bug
NginX plugin is not calling setup.php on restart.
To Reproduce
change something, click apply
Expected behavior
Configuration (for example certificated) should be regenerated.
Screenshots
If applicable, add screenshots to help explain your problem.
Relevant log files
If applicable, information from log files supporting your claim.
Additional context
Add any other context about the problem here.
Environment
Software version used and hardware type if relevant.
e.g.:
OPNsense 19.1.1 (amd64, OpenSSL).
Intel® Xeon™ E3-1225V5 3.3Ghz Quad Core
Network Intel® I210-AT
fix
Add the following back into the NginX ServiceController:
    public function reconfigureAction()     {         if ($this->request->isPost()) {             $this->sessionClose();             $model = $this->getModel();             $backend = new Backend();             if ($this->reconfigureForceRestart()) {                 $backend->configdRun('nginx stop');             }             $backend->configdRun('template reload OPNsense/Nginx');             $runStatus = $this->statusAction();             if ($runStatus['status'] != 'running') {                 $backend->configdRun('nginx start');             } else {                 $backend->configdRun('nginx reload');             }             return array('status' => 'ok');         } else {             return array('status' => 'failed');         }     }

@bimbar Did you mean to close this? reconfigureAction() was removed because it wasn't properly implementing a reload from the parent class which provides reconfigureAction() and does handle that correctly. The code hasn't been released yet due to lack of testing, but at least a missing function should not be the actual problem here.
Cheers,
Franco


fix border bugs on chrome

border is broken when zooming in/out on chrome
fix #244
Description
border-image using Inline SVG is broken when zooming in/out on chome.

before
after

Compatibility
N/A
Caveats

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


SIMSBIOHUB-365: Publish Survey to Biohub

Links to Jira Tickets

SIMSBIOHUB-392
SIMSBIOHUB-365

Description of Changes

Generate survey data package to send publish request to Biohub

Testing Notes

{List any relevant testing considerations, necessary pre-reqs, and areas of the app to focus on. Specifically, include anything that will help the reviewers of this PR verify the code is functioning as expected.}

@KjartanE Looks good, tried it out and it seems to work as expected. There are just a handful of code smells we should address.


[BUG] When Im tryna take off the cursor it stays on when i enter roblox

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.8.1
What problem did you encounter?
So, when I take off the cursor and I join Roblox it doesn't take off the cursor. The cursor stays.
Bloxstrap Log
N/A

did u click save?

Client related issues are no longer accepted.


Documentation

What to document
The project is lacking documentation for end users and developers.

Better readme
github pages with tutorials and examples

It's not clear how to install the cloudformation macro.

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle rotten

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

@poiana: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


FlowLayout children overdraw themselves

Version 1.3.2 introducs a bug when FlowLayout is being reused i.e. on Recycleview.
On first layout it properly draws its children:

but when the screen is scrolled and the container is reused its starts drawing over its children (or draws children that shouldn't be drawn?):

That is how the view looks like without app:flMaxRows="1":

FlowLayout setup:
<com.nex3z.flowlayout.FlowLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:flChildSpacing="4dp"
    app:flMaxRows="1"
    app:flRowSpacing="4dp"
    ><!-- children --> </com.nex3z.flowlayout.FlowLayout>

I built a similar layout but cannot reproduce this issue.

Could you please provide more code for reproducing this issue?
And also could you please comfirm whether the issue is introduced only in 1.3.2 and not in 1.3.1?
Thanks.

Here's sample repository: https://github.com/mateuszkwiecinski/flowlayout_bug
It looks like the key thing is to set content that causes the child to resize.

Please it check 1.3.3:
implementation 'com.nex3z:flow-layout:1.3.3'

Superb! Every thing works as expected. Thank you for the fix and for maintaining the library 🙏


Feature/CORS filter

A CORS Filter that we can configure the allowed sources,headers etc ,for easy access from apps as well as js access from sites.
This will predominantly handle the preflight requests(OPTIONS) .

AEM 6.3 now provides CORS OOTB

https://helpx.adobe.com/experience-manager/kt/platform-repository/using/cors-security-article-understand.html


Add end-to-end tests with Cypress and GitHub Actions workflow

THOUGHTS FOR DISCUSSION
This is great stuff and I like the way you have introduced some neat technology here. It is quite advanced though and I think with a little more work we may be able to explain it better and get the best value from it. Also, thinking ahead, the ability for Curity people to quickly get set up to run tests and troubleshoot failures in plugins has a lot of value.
MY INITIAL EXPERIENCE
I had to dig around quite a bit between multiple repos, READMEs and the website tutorial in order to get test setup working. This is time consuming for PMEs, anyone else at Curity or customers.
SELF DOCUMENTING SCRIPTS?
Can we instead do some basic scripting in each top level repo to make each the technical testing more self documenting, in a way that consumes the shared code? Eg run npm test as in my initial script in a sub branch of your one. Some manual steps will be fine I think - but the script can cover that via comments.
VISUALIZATION
Results are then highly visual as in this screenshot, and this will appeal to people since it enables them to understand what is going on:

Ideally I would also like to have the ability to run Cypress visually and see authenticators and redirect actions visually, but if that's a lot of work we can leave it for now.
NEXT STEPS
Let's discuss together.


⚠ Ansible Galaxy API has degraded performance

In 9e7bc45, Ansible Galaxy API (https://galaxy.ansible.com/api/v2/) experienced degraded performance:

HTTP code: 200
Response time: 1103 ms

Resolved: Ansible Galaxy API performance has improved in 78d210d.


Fix codes for Fujitsu AR-RY12 and AR-REB1E remotes

Fixing codes for Fujitsu AR-RY12 and AR-REB1E remotes. Previous codes were working only, when A/C was turned on first to the fan_only mode - starting from there modes could be changed. New codes were recorded in a way were remote was sending full command (not only kind-of partial diff).

Once hot season started I was able to notice, that previous code were working fine switching modes of A/C, but only when A/C was turned on first through fan_only mode. Previous codes were recorded just by switching temperatures. This probably sends some partial diff to the device. New codes were recorded by turning on the remote in the desired state. I've tested this more carefully - all seems work in all conditions now, no matter if device is switched initially off or is currently in a different mode.
Sorry for the initial codes not working in all conditions.


GH-34223: [Java] Proposal for Java Substrait Consumer

Closes: #34223

The purpose of this Draft PR is to answer the following questions:

Could the Java Substrat Consumer be developed inside the Dataset module?
Is it necessary to create a new Java Module only for Java Substrait Consumer functionality?
Can a "Common Util JNI library" be built for common stuff that can be reused by other modules like Dataset, Substrait, others?

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

Could you rebase on main to use #34480?

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

feat: data to test java substrait consumer apache/arrow-testing#89

Failing for testing files needed on PR: https://github.com/apache/arrow-testing/pull/89

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

Error on Vector module with message:
Error:  Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.1:shade (default) on project arrow-vector: Execution default of goal org.apache.maven.plugins:maven-shade-plugin:3.1.1:shade failed: Plugin org.apache.maven.plugins:maven-shade-plugin:3.1.1 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-shade-plugin:jar:3.1.1 -> org.ow2.asm:asm:jar:6.0: Failed to read artifact descriptor for org.ow2.asm:asm:jar:6.0: Could not transfer artifact org.ow2.asm:asm:pom:6.0 from/to apache (https://repo.maven.apache.org/maven2/): Connection reset -> [Help 1]

@github-actions crossbow submit java-jars

I'm going to unsubscribe for this since using java-jars for testing is very noisy. Ping me when this is ready for review.

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

Hi @lidavidm, sorry to request so many reviews.
It would be helpful if you could help me see how it looks now.

FYI,
With new version arrow-dataset-12.0.0-SNAPSHOT: https://github.com/ursacomputing/crossbow/releases/tag/actions-4043a22480-github-java-jars
- wget https://github.com/ursacomputing/crossbow/releases/download/actions-4043a22480-github-java-jars/arrow-dataset-12.0.0-SNAPSHOT.jar
- mvn install:install-file "-Dfile=/Users/dsusanibar/Downloads/dataset/actions-4043a22480-github-java-jars/arrow-dataset-12.0.0-SNAPSHOT.jar" "-DgroupId=org.apache.arrow" "-DartifactId=arrow-dataset" "-Dversion=12.0.0-SNAPSHOT" "-Dpackaging=jar"

Query TPCH Nation table is woking as expected:
import com.google.common.collect.ImmutableList;
import io.substrait.isthmus.SqlToSubstrait;
import io.substrait.proto.Plan;
import org.apache.arrow.dataset.file.FileFormat;
import org.apache.arrow.dataset.file.FileSystemDatasetFactory;
import org.apache.arrow.dataset.jni.NativeMemoryPool;
import org.apache.arrow.dataset.scanner.ScanOptions;
import org.apache.arrow.dataset.scanner.Scanner;
import org.apache.arrow.dataset.source.Dataset;
import org.apache.arrow.dataset.source.DatasetFactory;
import org.apache.arrow.dataset.substrait.AceroSubstraitConsumer;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.vector.ipc.ArrowReader;
import org.apache.calcite.sql.parser.SqlParseException;

import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;

public class ClientSubstrait {
    public static void main(String[] args) {
        String uri = "file:///data/tpch_parquet/nation.parquet";
        ScanOptions options = new ScanOptions(/*batchSize*/ 32768);
        try (
                BufferAllocator allocator = new RootAllocator();
                DatasetFactory datasetFactory = new FileSystemDatasetFactory(allocator, NativeMemoryPool.getDefault(),
                        FileFormat.PARQUET, uri);
                Dataset dataset = datasetFactory.finish();
                Scanner scanner = dataset.newScan(options);
                ArrowReader reader = scanner.scanBatches()
        ) {
            // map table to reader
            Map<String, ArrowReader> mapTableToArrowReader = new HashMap<>();
            mapTableToArrowReader.put("NATION", reader);
            // get binary plan
            Plan plan = getPlan();
            ByteBuffer substraitPlan = ByteBuffer.allocateDirect(plan.toByteArray().length);
            substraitPlan.put(plan.toByteArray());
            // run query
            try (ArrowReader arrowReader = new AceroSubstraitConsumer(allocator).runQuery(
                    substraitPlan,
                    mapTableToArrowReader
            )) {
                while (arrowReader.loadNextBatch()) {
                    System.out.println(arrowReader.getVectorSchemaRoot().contentToTSVString());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static Plan getPlan() throws SqlParseException {
        String sql = "SELECT * from nation";
        String nation = "CREATE TABLE NATION (N_NATIONKEY BIGINT NOT NULL, N_NAME CHAR(25), " +
                "N_REGIONKEY BIGINT NOT NULL, N_COMMENT VARCHAR(152))";
        SqlToSubstrait sqlToSubstrait = new SqlToSubstrait();
        Plan plan = sqlToSubstrait.execute(sql, ImmutableList.of(nation));
        return plan;
    }
}

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

Retry by error on https://github.com/ursacomputing/crossbow/actions/runs/4612578202/jobs/8154386953
Error:  Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.1:shade (default) on project arrow-vector: Execution default of goal org.apache.maven.plugins:maven-shade-plugin:3.1.1:shade failed: Plugin org.apache.maven.plugins:maven-shade-plugin:3.1.1 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-shade-plugin:jar:3.1.1 -> org.ow2.asm:asm:jar:6.0: Failed to read artifact descriptor for org.ow2.asm:asm:jar:6.0: Could not transfer artifact org.ow2.asm:asm:pom:6.0 from/to apache (https://repo.maven.apache.org/maven2/): Connection reset -> [Help 1]

@github-actions crossbow submit java-jars

@github-actions crossbow submit java-jars

Hi @kou, just rebase changes with main branch, then I am seeing this errors message:
2023-04-10T19:21:26.6348210Z === Checking shared dependencies for libraries ===
2023-04-10T19:21:26.6348670Z + echo '=== Checking shared dependencies for libraries ==='
2023-04-10T19:21:26.6349140Z ~/work/crossbow/crossbow/arrow/java-dist/x86_64 ~/work/crossbow/crossbow
2023-04-10T19:21:26.6349600Z + pushd /Users/runner/work/crossbow/crossbow/arrow/java-dist/x86_64
2023-04-10T19:21:26.6350640Z + archery linking check-dependencies --allow CoreFoundation --allow Security --allow libSystem --allow libarrow_cdata_jni --allow libarrow_dataset_jni --allow libarrow_orc_jni --allow libc++ --allow libcurl --allow libgandiva_jni --allow libncurses --allow libobjc --allow libz libarrow_cdata_jni.dylib libarrow_dataset_jni.dylib libarrow_orc_jni.dylib libgandiva_jni.dylib
2023-04-10T19:21:30.9851090Z Error: Unexpected shared dependency found in libgandiva_jni.dylib: `libzstd`
2023-04-10T19:21:31.0508960Z ##[error]Process completed with exit code 1.

Do you have some ideas about reason of this failing errors?

This error message is the same that main branch is throw: https://github.com/ursacomputing/crossbow/actions/runs/4655934424/jobs/8239067973
2023-04-10T09:06:03.4314790Z === Checking shared dependencies for libraries ===
2023-04-10T09:06:03.4316170Z + echo '=== Checking shared dependencies for libraries ==='
2023-04-10T09:06:03.4317220Z ~/work/crossbow/crossbow/arrow/java-dist/x86_64 ~/work/crossbow/crossbow
2023-04-10T09:06:03.4319550Z + pushd /Users/runner/work/crossbow/crossbow/arrow/java-dist/x86_64
2023-04-10T09:06:03.4328980Z + archery linking check-dependencies --allow CoreFoundation --allow Security --allow libSystem --allow libarrow_cdata_jni --allow libarrow_dataset_jni --allow libarrow_orc_jni --allow libc++ --allow libcurl --allow libgandiva_jni --allow libncurses --allow libobjc --allow libz libarrow_cdata_jni.dylib libarrow_dataset_jni.dylib libarrow_orc_jni.dylib libgandiva_jni.dylib
2023-04-10T09:06:08.5479250Z Error: Unexpected shared dependency found in libgandiva_jni.dylib: `libzstd`
2023-04-10T09:06:08.6240940Z ##[error]Process completed with exit code 1.

@davisusanibar Could you open a new issue for it?
FYI: https://github.com/apache/arrow/issues/34867#issuecomment-1501256159

@davisusanibar Could you open a new issue for it?
FYI: #34867 (comment)

Issue mention at https://github.com/apache/arrow/issues/35018

Hi @lidavidm / @amol- / @danepitkin How do you see to consider this PR for V12 version or should be consider by V13? I could suggest to approve this and consider as an experimental feature and iterate over that.

I'm not willing to let this be rushed in for 12.0.0 with outstanding feedback.

Now that Arrow v12 is released, are we comfortable merging this? @davisusanibar should we do a quick rebase to double check there are no regressions in the test suite?

@github-actions crossbow submit java-jars


Is this a typo?

After compiling the repo I get :
./rmpe_dataset_transformer [DATASET] [PORT]
However, in the documentation says it should be:
./rmpe_dataset_server [DATASET] [PORT]
Is this a typo or am I  doing something wrong?

My bad I guess I clone other repo with almost the same name. Sorry.


Any support on Android?

Hi, has anyone build the clBlas on the android system?
I tried to run cmake with the android-cmake:
cmake -DCMAKE_TOOLCHAIN_FILE=/workspace/ml/android-cmake/andndroid.toolchain.cmake
-DANDROID_NDK=${NDK_ROOT}
-DANDROID_ABI="${ANDROID_ABI}"
-DANDROID_NATIVE_API_LEVEL=21
-DCMAKE_BUILD_TYPE=Release
-DBOOST_ROOT="${BOOST_HOME}"
-DOPENCL_ROOT="${OPENCL_ROOT}"
-DBUILD_TEST=OFF
../../clBLAS/src
but with failure:
CMake Error at /workspace/soft/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)
Call Stack (most recent call first):
the BOOST_ROOT point to a prebuilt bosst lib, it seems the python lib is not found.

we are not familiar with android device. Can you install a python lib manually?

I find a post talking about the building of clBlas on android.
According to their experience, I:

delete -m${TARGET_PLATFORM}
delete set(TIME_LIBRARY "rt") in \clblas\library\tools\tone\cmakelists.txt,as android dont support -lrt
then:
`
rm -rf ${workspace}
mkdir -p ${workspace}
cd ${workspace}

cmake
-DCMAKE_TOOLCHAIN_FILE=/workspace/ml/android-cmake/android.toolchain.cmake
-DANDROID_NDK=${NDK_ROOT}
-DANDROID_ABI="${ANDROID_ABI}"
-DANDROID_NATIVE_API_LEVEL=21
-DCMAKE_BUILD_TYPE=Release
-DOPENCL_ROOT="${OPENCL_ROOT}"
-DBUILD_TEST=OFF
-DBUILD_PERFORMANCE=OFF
-DBUILD_SAMPLE=OFF
-DBUILD_CLIENT=OFF
-DBUILD_KTEST=OFF
-DBoost_USE_MULTITHREADED=OFF -DBoost_USE_STATIC_LIBS=OFF -DBoost_DETAILED_FAILURE_MSG=OFF
-DBoost_DEBUG=OFF -DBoost_ADDITIONAL_VERSIONS=OFF
-DOPENCL_INCLUDE_DIRS=${OPENCL_ROOT}/include
-DOPENCL_LIBRARIES=${OPENCL_ROOT}/lib/libOpenCL.so
-DBoost_INCLUDE_DIR=${INSTALL_DIR}/boost
-DBoost_INCLUDE_DIR=${INSTALL_DIR}/boost/include
-DBoost_PROGRAM_OPTIONS_LIBRARY=${INSTALL_DIR}/boost/lib/libboost_program_options.a
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/clBLAS
../../clBLAS/src
make
make install
`
It could be succcessfully built for the v2.4 and v2.8, but not the v2.10.
For the v2.10, it tried to find the python lib, which was not available.
So I have a question here. Is the python interface a must dependency? What does it for? Could I take advantage of the newest clBlas without it? Thanks

i bet this python lib is a part of the auto-gemm. @guacamoleo may give you the final answer.

v2.10 does use python for generating the GEMM kernels; so Python is now a prerequisite.

In case it is not possible to install Python on your Android device, you could also try another OpenCL BLAS library (https://github.com/CNugteren/CLBlast). It doesn't have a Python dependency.

U can use the version v2.8. v2.10 is optimized for discrete GPU Fiji which your android device does not care  of.

I find a post talking about the building of clBlas on android.
According to their experience, I:

delete -m${TARGET_PLATFORM}
delete set(TIME_LIBRARY "rt") in \clblas\library\tools\tone\cmakelists.txt,as android dont support -lrt
then:
`
rm -rf ${workspace}
mkdir -p ${workspace}
cd ${workspace}

cmake
-DCMAKE_TOOLCHAIN_FILE=/workspace/ml/android-cmake/android.toolchain.cmake
-DANDROID_NDK=${NDK_ROOT}
-DANDROID_ABI="${ANDROID_ABI}"
-DANDROID_NATIVE_API_LEVEL=21
-DCMAKE_BUILD_TYPE=Release
-DOPENCL_ROOT="${OPENCL_ROOT}"
-DBUILD_TEST=OFF
-DBUILD_PERFORMANCE=OFF
-DBUILD_SAMPLE=OFF
-DBUILD_CLIENT=OFF
-DBUILD_KTEST=OFF
-DBoost_USE_MULTITHREADED=OFF -DBoost_USE_STATIC_LIBS=OFF -DBoost_DETAILED_FAILURE_MSG=OFF
-DBoost_DEBUG=OFF -DBoost_ADDITIONAL_VERSIONS=OFF
-DOPENCL_INCLUDE_DIRS=${OPENCL_ROOT}/include
-DOPENCL_LIBRARIES=${OPENCL_ROOT}/lib/libOpenCL.so
-DBoost_INCLUDE_DIR=${INSTALL_DIR}/boost
-DBoost_INCLUDE_DIR=${INSTALL_DIR}/boost/include
-DBoost_PROGRAM_OPTIONS_LIBRARY=${INSTALL_DIR}/boost/lib/libboost_program_options.a
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/clBLAS
../../clBLAS/src
make
make install
`
It could be succcessfully built for the v2.4 and v2.8, but not the v2.10.
For the v2.10, it tried to find the python lib, which was not available.
So I have a question here. Is the python interface a must dependency? What does it for? Could I take advantage of the newest clBlas without it? Thanks

Would you please post your libboost_program_options.a?

According to https://github.com/clMathLibraries/clBLAS/wiki/Build-client,-samples,-gtest
you don't need to libboost...a if you only need libclblas.so.

Notice if you build clBLAS, then your underlying device must support OpenCL firstly. So which android physically device do you build on? Which OpenCL driver does it ship with? And what is the OpenCL version?


Flagged plot navigation

Request to add "Flagged plots" for administrators to step through only plots that have been flagged.

The referenced issue is not related to your request.  I think it would be relatively simply to add "Flagged Plots" to the drop down selection we now have for the admin navigation.

Fixed!
Yep, that's exactly what I was thinking.

Fixed!
Yep, that's exactly what I was thinking.


Tow a vehicle not functioning properly

Method is able to run, but menu choices from performActions() method are overlapping the options to select a vehicle to tow. Need to adjust method to ensure performActions() method does not run again until after tow() method is completed.

Moved performActions() outside of findVehicleToTow() so towing action would complete before showing performActions() choices again but issue persists.


Investigation: custom Vertex storage

I want to investigate possibility to introduce custom storage format for Vertex lists.
My idea is to have Vertex storage that will be accessed by integer index. It will have performance impact but decreasing memory demand.
For example my vertex data can use 2x int for XY and 1x short for Z value stored in 1 dimensional arrays. No memory overhead for Vertex as Java object.
No action required.

An excellent idea!
One unfortunate thing about Java is that it consumes 12 or 16 bytes per object instance (depending on the operating system and JVM).  For a small object like a vertex, that means that a substantial part of the storage for the object is actually overhead.
I can see where you might end up making something like a "Semi-Virtual Vertex Store" for vertices. The Store would be a kind of collection that holds vertices, but keeps them in data rather than realizing them as objects... sort of what the SemiVirtualEdgePool does.
If you look at the SingleBuildTest, you will see where I use it to estimate the number of bytes used by different objects.  It's a bit tricky because Java, by design, hides that kind of detail from the application.  Anyway, as you're experimenting, you might be able to take some ideas from that as a way of evaluating your success.


Sentiment Agent

@rishabhjain I'm trying your Sentiment Agent but I couldn't make it work. I'm getting this error:
exception during receive. undefined method downcase' for #<Hash:0x007fbf6b238098>: /app/app/models/agents/sentiment_agent.rb:69:in sentiment_values'
/app/app/models/agents/sentiment_agent.rb:43:in block (2 levels) in receive' /app/app/models/agents/sentiment_agent.rb:42:in each'
/app/app/models/agents/sentiment_agent.rb:42:in block in receive' /app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.4/lib/active_record/relation/delegation.rb:46:in each'
/app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.4/lib/active_record/relation/delegation.rb:46:in `each'
[...]
Could you provide a simple example?
Thank you!

@jn11 Are you sure you are using correct JsonPath expression?
Sentiment Agent example
Create a manual event agent which emits events like
{'message': ' When I joined Google in 2009, we were on the tail-end of a latency optimization kick that Larry had started in 2007. At the time, we had a budget of 20K gzipped for the entire search results page.'}

And Sentiment Agent with mentioned Manual Event Agent as event source and following config
{"content": "message",
"expected_receive_period_in_days": 1}

This should work.

Thanks for the example, now it works fine!
Some questions more:

I couldn't find more documentation about valence, arousal and dominance
in the documentation/wiki of this project. In google I found some papers,
but not sure which ones you used to develop this agent. Could you provide
some references for further reading on this interesting topic?

Not sure about the use cases for this agent. Could you list some examples?

Thanks you!
On Tue, Oct 20, 2015 at 3:24 PM, Rishabh Jain<EMAIL_ADDRESS>wrote:

@jn11 https://github.com/jn11 Are you sure you are using correct
JsonPath expression?
Sentiment Agent example
Create a manual event agent which emits events like
{'message': ' When I joined Google in 2009, we were on the tail-end of a latency optimization kick that Larry had started in 2007. At the time, we had a budget of 20K gzipped for the entire search results page.'}
And Sentiment Agent with mentioned Manual Event Agent as event source and
following config
{"content": "message",
"expected_receive_period_in_days": 1}
This should work.
—
Reply to this email directly or view it on GitHub
https://github.com/cantino/huginn/pull/51#issuecomment-149567318.


feat: move to node:fs/promises

Moves to using node:fs/promises rather than using promisify manually.

going to try fix this pesky windows failure while im in here 👍  lets not merge until i have, or i've given up 😂

@43081j can we make a list of whats needed for v4 in your opinion?
i want to ditch v3 bc i’m tired of ppl reporting “vulnerabilities”

ok let's prepare for the release later this week.


feat(esl-utils): getEventListeners() method for SynteticEventTarget

Protected method to get event listeners for SynteticEventTarget
Closes: #1540

Hey, @exadel-inc/esl-all-contributors  team the is a small stylistic question appears in this PR, so we need your feedback to decide the final way for our update.
The question relates to the uniqueness property in the getEventListener tech implementation.
We need it from the API point of view independently of passing the actual event or getting all listeners.
But technically, we have some details.
Option 1 (👍🏻)
Currently in PR
For consistency, we have used the uniq for parametrized and general flow.
protected getEventListeners(type?: string): EventListenerOrEventListenerObject[] {
    return uniq((typeof type !== 'string') ? flat(Object.values(this._listeners)) : (this._listeners[type] || []));
}

At the same time, we do not use getEventListeners(type) inside the dispatchEvent as it is a significant performance loss
dispatchEvent can be called frequently, so creating a Set under the hood is not a good idea
// dispatchEvent part
   this._listeners[e.type]?.forEach((listener) => {
     if (typeof listener === 'function') listener.call(this, e);
     else listener.handleEvent.call(listener, e);
   });

But potentially, we share overoptimized getEventListeners with the user.
(But just to be clear, this is an edge case that user access listeners and do it so frequently)
Option 2 (🎉)
We do not make extra operations inside the getEventListeners
protected getEventListeners(type?: string): EventListenerOrEventListenerObject[] {
   if (typeof type !== 'string') return uniq(flat(Object.values(this._listeners)));
   return this._listeners[type] || [];
}

The collections (arrays) in the private store this._listeners are unique separately as they are modified by addEventListener / removeEventListener accordingly (saving uniq state)
Then we can safely use it in dispatchEvent
// dispatchEvent part
   this.getEventListeners(e.type).forEach((listener) => {
     if (typeof listener === 'function') listener.call(this, e);
     else listener.handleEvent.call(listener, e);
   });

But again, potentially, the key this._listeners are still accessible and can contain invalid data (edge case too)
As additional options, we can also consider
Option 3 (👀)  = Option 2 + store listeners under the true private symbol (the lightweight enough change, but do we need it)
Option 4 (🚀) use a Set to store listeners (but according to the specific of the event target, the only frequent operation is getting listeners for a defined event type, so there is may no need to use mo strict collection)
Please share your opinion with marked emoji or in the tread (here or Slack)

According to the votes, let's go with the following update for the getEventListener tech implementation

No extra processing on the internal collection

protected getEventListeners(type?: string): EventListenerOrEventListenerObject[] {
   if (typeof type !== 'string') return uniq(flat(Object.values(this._listeners)));
   return this._listeners[type] || [];
}

Simplify dispatch

// dispatchEvent part
   this.getEventListeners(e.type).forEach((listener) => {
     if (typeof listener === 'function') listener.call(this, e);
     else listener.handleEvent.call(listener, e);
   });

Make this._listeners stored under the hidden Symbol key (true private implementation)

:tada: This PR is included in version 4.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


CI Improvements

Some improvements to our CI infra:

Removed build container caching. In practice, this has slowed things down more than it's helped, because (1) build containers are invalidated frequently, (2) even though we rm -rf all the old images on every run, I suspect travisci does not recognize this, causing the cache to bloat. If this is true, it's likely what's causing the frequent timeouts in TravisCI.
Added a separate build step run before any tests. When the build completes, the images are pushed to docker hub, and then each test runner pulls the images. As a result, we only build once for all tests, rather than for each test. This will substantially reduce our TravisCI node utilization, and should reduce failure rate further. And we need to push images to docker hub anyway to do #4985.

Closes #4983

You can see which directories are still cached under the cache/directories list, toward the top of .travis.yml.


created a script to uninstall zabbix on head nodes

This script will:

stop zabbix agent and servers
drop the zabbix table  from mysql
remove zabbix api ruby gems
remove all software and logs from the head nodes

@ekund You'll have to clear Zabbix DB customization and Leader election related files too.

Please follow rubocop recommendations

@kiiranh #441 covers the leader election issue but could you update that issue for tuning idempotency too; I suspect that has been missed for folks on upgrade?
@ekund, perhaps tackling #441 independently would be better than doing that here?

I have updated and cleaned up the script so that it passes rubocop, removed unneeded functions, and it can now work on both hardware and vm clusters.

Please squash commits and otherwise, things look good. The comment for check_status would be nice but is mainly a nit.


Use with elm-effects and Effects.tick

I'm slowly coming up to speed with my Elm / typing / functional fu, and am currently trying to grok Evan's  Effects and your animation. Were there some technical reasons why Effects.tick was not suitable for animation?
Thanks!

The biggest problem is that the animation library is built around the idea of a single, always-running clock. Components that encapsulate effects, by definition, cannot share a clock. As you add more components, each will have its own clock. It's extra bookkeeping to run these individual clocks only when needed. Furthermore, if you wire up the signals yourself you can use Time.fps n to limit the framerate, but with elm-effects you're stuck with a wrapper around requestAnimationFrame.
That said, you can just eat all that cost and it still works. Here's a gist of the SpinSquare example, and yes, both squares can be spinning at the same time. More information in the gist itself.
Every "real" (not a side project or school assignment) 2D and 3D graphics engine I know of uses a single event loop. Using this library, you can encapsulate the animation to the component but break out the time to the main event loop, perhaps passing it to view and update.
Does this answer your question?

Yes, very clearly. The gist looks very nice.
Thank you!

You're welcome. Glad I could help.

Just for the record, in case anyone comes back to this later:
Some points from Max's comment above are not applicable criticisms of elm-effects anymore. Since the merging of https://github.com/evancz/elm-effects/pull/24 (and, relatedly, for users of start-app, https://github.com/evancz/start-app/pull/28) it is not true that "Components that encapsulate effects, by definition, cannot share a clock." Due to the changes pointed to, users of elm-effects can now encapsulate effects in components but automatically get efficient interplay in the sense that they are run on a shared clock. Essentially, due to the batching of ticks that was introduced there, one can get a "single event loop" even with separately specified components.

If I understand correctly, that's an internal change so that multiple components requesting the animation frame are batched together. In Elm, each component still needs to store its own copy of the clock and continuously request new clock values (as opposed to the whole program once). I think a much better API would be to provide, perhaps to StartApp, a view function that takes the current elapsed time as an argument and is called every animation frame.

I'm not sure what you mean by "each component needs to store its own copy of the clock". In the new version of start-app+elm-effects, 100 batchable ticks together in flight will all get the same clock value. They will be sent to the app's update-function in one batch. That update-function will call the 100 components' update-functions. The results will be put together and passed to the app's view-function only once (which will probably call the 100 components' view-functions, but the point is that this happens only once, rather then 100 times calling the app's update-function, each time only updating one of the 100 components, and the same 100 times calling the app's view-function, causing as many bursts of calls to 100 component view-functions -- so altogether 100*100 calls of small view-functions -- despite the fact that each time 99 of the 100 will have no reason to be called).
It's true that "each component needs to continuously request new clock values", but that's just a consequence of the desire for modularity, isn't it? I'm not even sure what you mean by "the whole program only once requesting a new clock value" (in each round). If the program is made up of 200 components, how does it decide which 100 of them actually do need to be called on the next clock tick? (Maybe the other 100 of the 200 are not running any animations, instead are just waiting for mouse clicks or whatever.) The only way to do this modularly seems to be to make it each component's task to declare that it is waiting for another tick.
Overall, I don't understand the  "much better API" you have in mind. Can you elaborate?
In any case, the earlier comments about the cost of modularity here are not accurate anymore. For example, in the issue that sparked the changes to start-app and elm-effects, it turned out that what you imply in the gist about the SpinSquare example stops being true in the presence of the batching trick. Even if one goes from two to many more squares, things keep working efficiently. (Of course, there is a slowdown with more squares, simply because calculating and drawing 100 squares is more expensive than doing so for two squares. But there is no inherent slowdown as a cost of modularity or "because every component has to run its own clock". That kind of cost has been eliminated by the batching trick, I think.)

You know more about the changes to startApp and Effects, so it's possible I'm just wrong here. Which would be great, since what you describe sounds quite reasonable.

I'm not even sure what you mean by "the whole program only once requesting a new clock value" (in each round). If the program is made up of 200 components, how does it decide which 100 of them actually do need to be called on the next clock tick?

The premise of the library is that there is a continuously running clock. Without StartApp or Effects, it's just in the model. With them, I am uncertain whether only the app's update and model need to track and store the time, or whether each component must define an Tick Time case of their action type, and store it in their component model. If the former, that's great and we're done. If the latter, batching the ticks eliminates most of the performance cost because every component is informed of the same clock. I'm concerned about the verbosity of updating and storing the clock in every component.
The "much better API" would be view : Address action -> Time -> model -> Html. I don't know if this is feasible, but the intention is to avoid boilerplate in update and Model. Except you'd have to do something similar with the type of update, since you need to know the current time when, for example, retargeting an animation on mouse click. So maybe the verbosity is worth it after all.

@mgold, sorry for not answering earlier here. I have not much to say, since this is not really about right or wrong. There's different approaches. So, just:

The premise of the library is that there is a continuously running clock. Without StartApp or Effects, it's just in the model. With them, I am uncertain whether only the app's update and model need to track and store the time, or whether each component must define an Tick Time case of their action type, and store it in their component model.

Each component must define such a case. Whether it needs to store time in their component model depends on what it wants to do with time. Will it be happy to work just with the current time on each Tick action, or will it need to compute a difference between the current time and the last time it saw? This can vary.

If the latter, batching the ticks eliminates most of the performance cost because every component is informed of the same clock. I'm concerned about the verbosity of updating and storing the clock in every component.

I noticed this concern. But it's not clear this is really a big issue. Benchmarking and/or comparing code would be needed to be sure whether this conceptual and performance overhead is real. For example, if you did the SpinSquare example in your approach, but without "cheating" (as you have admitted in the Gist to be doing, and maybe you have also been doing in your mind when thinking about how you would do that example without any Effects stuff), you might have to introduce other bookkeeping for starting and stopping clocks/animations, that might be just as verbose etc.

The "much better API" would be view : Address action -> Time -> model -> Html. I don't know if this is feasible, but the intention is to avoid boilerplate in update and Model. Except you'd have to do something similar with the type of update, since you need to know the current time when, for example, retargeting an animation on mouse click. So maybe the verbosity is worth it after all.

I've been using such an API in https://github.com/jvoigtlaender/Elm-Kurs, see e.g. the types of update and scene (my version of view) there in https://github.com/jvoigtlaender/Elm-Kurs/blob/master/pages/Ballistics.md, which both take an explicit time argument (as well as an explicit current mouse position argument). But that made sense there because this was just a playground with a fixed set of inputs. If one goes for modularity, I think the approach of start-app makes more sense.
But, as said, much of this is too abstract discussion. One would have to compare something concrete realized in the respective APIs to get more real insight.


Reverse the Sort Order on the Version Select Dropdown

The current (most recent) version is at the top, and then the versions are listed in ascending order. It seems more intuitive to me that the versions would be listed in descending order, with the second entry starting at the penultimate version.

No problem, that's a super easy fix!


Need a way to use envoy.extensions.filters.http.ext_authz.v3.ExtAuthz for both requests and responses.

From what I can tell, the envoy.extensions.filters.http.ext_authz.v3.ExtAuthz only gets triggered when a request goes through the filter chain. When a response comes back, this seems to be skipped. Is there a way to run this in both cases? It would be helpful for be because I would like to use code in my ExtAuthz server to check headers in the response.

Have you seen https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/ext_proc.proto#envoy-v3-api-msg-extensions-filters-http-ext-proc-v3-externalprocessor? It might be a better fit.

Can you use this to reject messages as well?
On Fri, May 19, 2023, 4:39 PM Kuat @.***> wrote:

Have you seen
https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/ext_proc.proto#envoy-v3-api-msg-extensions-filters-http-ext-proc-v3-externalprocessor?
It might be a better fit.
—
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/issues/27523#issuecomment-1555343909,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBTO54HTNEZ75AKGAMLLWTXG7ZAZANCNFSM6AAAAAAYIJIFII
.
You are receiving this because you authored the thread.Message ID:
@.***>

@kyessenov I looked into ext_proc, however I am nervous that it is not in release and does not have security support at this time. Is there no way to get the ext_authz filter to run in both directions?

Yes, I'm pretty sure as it was designed primarily to authorize the request headers.
ext_proc is currently actively being improved so I think it's highly likely it's going to be safe enough to use soon.

Is there a target for a stable release at this point or is "soon" as good
as it gets right now? Also thank you for your help.
On Wed, May 24, 2023, 2:11 PM Kuat @.***> wrote:

Yes, I'm pretty sure as it was designed primarily to authorize the request
headers.
ext_proc is currently actively being improved so I think it's highly
likely it's going to be safe enough to use soon.
—
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/issues/27523#issuecomment-1561865067,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBTO5YDIDSQ4LIONDU55D3XHZTNJANCNFSM6AAAAAAYIJIFII
.
You are receiving this because you authored the thread.Message ID:
@.***>

Maybe @yanjunxiang-google  or @tyxia  can speak in detail, but ext_proc is a core filter - and the more it is used, the faster it'll mature.

Yeah, there is ongoing work to turn ext_proc filter into stable.  I don't have a date, but "in several weeks" probably is a good estimate.

Thanks a bunch! That is a reasonable enough estimate for me to use this now
and take the update when it comes.
On Wed, May 24, 2023, 4:07 PM yanjunxiang-google @.***>
wrote:

Yeah, there is ongoing work to turn ext_proc filter into stable. I don't
have a date, but "in several weeks" probably is a good estimate.
—
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/issues/27523#issuecomment-1561987616,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBTO5ZOOKAIQSGYCAUHAITXH2BCRANCNFSM6AAAAAAYIJIFII
.
You are receiving this because you authored the thread.Message ID:
@.***>


Updated Unreleased CHANGELOG entries

from revision  v1.4.38..2d9bc460

Thanks for the review! I know it was a lot to go through even if, as you said, you didn't go through it all. I guess being my first time updating the rustfmt CHANGELOG I wanted to make sure I was being overly inclusive not to miss something that might have been important.
That said, you're right and I definitely included plenty that's only relevant for developers and I'm happy to take another pass and trim down what I've got here 😁. Will go through what I've got here later this week.

@calebcartwright ready for a follow up review!

How are we looking on this? We desperately need to run another two way sync of the subtree, but I'd really like to do the version bump with associated changelog as part of that

@calebcartwright I've gone ahead and made some updates. Definitely let me know if any of the descriptions are unclear or need additional context. I also think I've found and fixed all typos, but please point them out if you see them. In general if anything looks off just let me know and i'll be happy to quickly go back and make the necessary changes

Thanks! I may make some additional tweaks but no need to block/better to get it merged to minimize any more merge conflicts

Let me know if you'd like to see a follow up PR to make any tweaks that you're thinking about


Cannot access com.xcoder.tasks.AsyncTask

Seems like due to some accessibility issue, AsyncTask class is not available outside of the library. None of the examples provided compile, is there a workaround?

seems like I needed to manually import
        <dependency>             <groupId>com.github.ErrorxCode</groupId>             <artifactId>AsyncTask</artifactId>             <version>1.0</version>         </dependency>
Otherwise, its not exposed by the library


[FEATURE] Hide Media & Link Preview

Describe the solution you'd like

settings to change the behaviour for media / disabling it/replacing it with a load media button

Additional context

this feature would help saving mobile data, also the feed would look a lot cleaer.

hi @KotlinGeekDev,
with Media i mean images and videos.
the settings also could provide both as a separate feature:
[ ] Hide Videos
[ ] Hide Images
instead of Hide All Media.
Is it Important? idk
does it help with the feed? most likely, also depends how it gets implemented, does the media load in the background? than there is no real benefit besides the feed lookin' clearer.
does the media only load when you press the (show media) button? benefit would be, the servers wouldn't need to do all the work as long the user wants to see it, so less data usage and less stress on the servers (i think?)

Please @bloodyeyesblackblood can you check if this is OK in the latest version? (So the issue can be closed)

Please @bloodyeyesblackblood can you check if this is OK in the latest version? (So the issue can be closed)

thanks for the new feature 👌
i don't like the design of the download button, somehow looks placed weird, but it does work! couldn't ask for more, thank you!


Put cockroach watermark under step which has special logging details set

Any visual hint you would like in the transformation to see that you set a specific level?
7:33 AM
Just remeber to create an issue for those things
7:34 AM
That way I can keep track of those.

Matt7:34 AM
Where?  How big?  What icon?
Nelson Sousa7:34 AM
Or a cockroach? :)
Matt7:34 AM
Love the idea :slightly_smiling_face:
Nelson Sousa7:34 AM
Big enough to not go unnoticed.
Matt7:34 AM
Dig up an SVG for a cockroach then :slightly_smiling_face:
Nelson Sousa7:34 AM
Some watermark covering the whole step.
Matt7:35 AM
Yeah, some very light gray cockroach over the whole step
7:35 AM
or under it
Nelson Sousa7:35 AM
https://www.flaticon.com/free-icon/bug-fixing_48642
FlaticonFlaticon
Bug fixing free vector icons designed by Freepik
Download this free icon in SVG, PSD, PNG, EPS format or as webfonts. Flaticon, the largest database of free vector icons.(66 kB)
https://imageog.flaticon.com/icons/png/512/48/48642.png?size=1200x630f&pad=10,10,10,10&ext=png&bg=FFFFFFFF

Watermark and so on is harder to do than it should be as there is no SVG drawing method exposed. This is really silly since the code is drawing step SVG icons...

I'm going for a small bee icon for now


WIP: Add support for weather exposing time zone

Description:
Adds support for the weather element to supply a time zone (and adds this to OpenWeatherMap as an example).
This will allow the front-end to read the desired timezone the weather should be displayed in, so that weather of other locations can be displayed in the timezone of that location, instead of the local system timezone. OpenWeatherMap's API does not supply timezone info, so in this case the user will have to set it manually. But others could have a "display_in_local_timezone" boolean value in the config instead.
I'll need some help with how to also change the front-end code in my Home Assistant venv so that I can test if this will work.
Suggestions welcome.
Checklist:

[ ] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly (example).
[ ] New dependencies have been added to requirements in the manifest (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Closing as it seems the architectural change will not be approved.


Improve default context component

A little refactor of the current components improve the context and lifecycle to a better performance

@VictorVelarde the chantes requested are done


⚠ Bofrost.be has degraded performance

In fec58c2, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1634 ms

Resolved: Bofrost.be performance has improved in d20af51.


P2016 since 2.11.0 when nested create and reference to same are within same query graph

Bug description
With Prisma 2.10.0, it was possible to, within a single query graph, both create a nested record, and, make reference to the newly created record.  With Prisma 2.11.0 and 2.12.0, this is broken.
How to reproduce
I created a sample on github that's based on the TypeScript 'scripts' example within the prisma-samples project.
https://github.com/pbelbin/2020-11-25-Prisma-P2016-Bug
Check out the project, at the command line, use:
npm install
npm run dev

and you will see the error being reported.
eg:
Invalid `prisma.group.create()` invocation:

  Query interpretation error. Error for binding '4': AssertionError("[Query Graph] Expected a valid parent ID to be present for a nested connect on a one-to-many relation.")
    at PrismaClientFetcher.request (./node_modules/@prisma/client/runtime/index.js:79353:15)
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  code: 'P2016',
  clientVersion: '2.12.0',
  meta: {
    details: `Error for binding '4': AssertionError("[Query Graph] Expected a valid parent ID to be present for a nested connect on a one-to-many relation.")`
  }
}

If you like, go into the package.json and change the version of Prisma back to 2.10.0, then use:
rm -rf node_modules
npm install
npm run dev

and you will see that there is no error.
Expected behavior
There should not be an error thrown, and, the records in the database should all get created.
Prisma information

schema.prisma:
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

model Group {
  id Int @id
  name String

  posts Post[]
}

model Post {
  id        Int     @default(autoincrement()) @id
  title     String
  content   String?
  published Boolean @default(false)
  author    User?   @relation(fields: [authorId], references: [id])
  authorId  Int?

  group Group? @relation(fields: [groupId], references: [id])
  groupId Int?
}

model User {
  id    Int     @id
  email String  @unique
  name  String?
  posts Post[]
}

sample code:
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

// A `main` function so that we can use async/await
async function main() {
  // Delete existing data
  await prisma.user.deleteMany({});
  await prisma.post.deleteMany({});
  await prisma.group.deleteMany({});

  // Determine high# for authorID
  const newAuthorID = 1;

  // Create 2 posts by new user
  await prisma.group.create({
    data: {
      id: 20,
      name: 'Grp1',
      posts: {
        create: [
          {
            title: 'post x-1',
            content: 'Yabba dabba do!',
            author: {
              create: {
                id: newAuthorID,
                email<EMAIL_ADDRESS>                name: 'Fred Flintstone',
              }
            }
          },
          {
            title: 'post x-1',
            content: 'Yabba dabba do!',
            author: {
              connect: {
                id: newAuthorID,
              }
            }
          }
        ]
      }
    }
  });
}

main()
  .catch((e) => {
    console.error(e)
    process.exit(1)
  })
  .finally(async () => {
    await prisma.$disconnect()
  })

Environment & setup

OS: Mac OS 11.0.1
Database: SQLLite, MySQL
Node.js version: 14.15.1
Prisma version:

@prisma/cli          : 2.12.0
@prisma/client       : 2.12.0
Current platform     : darwin
Query Engine         : query-engine cf0680a1bfe8d5e743dc659cc7f08009f9587d58 (at node_modules/@prisma/engines/query-engine-darwin)
Migration Engine     : migration-engine-cli cf0680a1bfe8d5e743dc659cc7f08009f9587d58 (at node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine : introspection-core cf0680a1bfe8d5e743dc659cc7f08009f9587d58 (at node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary        : prisma-fmt cf0680a1bfe8d5e743dc659cc7f08009f9587d58 (at node_modules/@prisma/engines/prisma-fmt-darwin)
Studio               : 0.322.0

Hey @pbelbin, thanks for raising this. It actually seems like this is not really a bug since the order of statements executed against the DB is not guaranteed by Prisma. So in this case, you unfortunately can't rely on the create call being executed before the connect call.
In this case, the issue would better be solved using connectOrCreate to ensure the new author can be created – or if it has been created already – can be connected to the new Post record:
await prisma.group.create({
  data: {
    id: 20,
    name: "Grp1",
    posts: {
      create: [
        {
          title: "post x-1",
          content: "Yabba dabba do!",
          author: {
            connectOrCreate: {
              where: {
                id: newAuthorID,
              },
              create: {
                id: newAuthorID,
                email<EMAIL_ADDRESS>                name: "Fred Flintstone",
              },
            },
          },
        },
        {
          title: "post x-1",
          content: "Yabba dabba do!",
          author: {
            connectOrCreate: {
              where: {
                id: newAuthorID,
              },
              create: {
                id: newAuthorID,
                email<EMAIL_ADDRESS>                name: "Fred Flintstone",
              },
            },
          },
        },
      ],
    },
  },
});

Does that help?

Hmmmm.  I see.
I have to say, I'm not a big fan of repeating the data within the graph.  In the sample, it has to be repeated only twice.  In other cases, it could amount to many more times, and the amount of data could be quite large.
Perhaps I am mistaken, but, it was my understanding that the Prisma Engine had the responsibility of performing some analysis of the ask, and would re-sequence as needed to achieve the intended result.
Is that not correct?

It was my understanding that the Prisma Engine had the responsibility of performing some analysis of the ask, and would re-sequence as needed to achieve the intended result.
Is that not correct?

As far as I understand, this is not correct unfortunately. Prima doesn't provide any guarantees about the sequencing of SQL statements that are generated by the Prisma engine for a nested write.
I'd encourage you to open a feature request where you describe the behaviour you'd like to see, but the way how things are implemented right now there are no guarantees about this behaviour unfortunately.

Yes the Engine has a responsibility to put the operations into the right order. But only within our defined semantics. There's no concept of ordering creates before connects or so. That would significantly complicate our semantics imo.
The way to deal with the repetition is to extract it into a variable e.g.:
const theAuthor = {
    where: {
        id: newAuthorID,
    },
    create: {
        id: newAuthorID,
        email<EMAIL_ADDRESS>        name: "Fred Flintstone",
    },
}

await prisma.group.create({
  data: {
    id: 20,
    name: "Grp1",
    posts: {
      create: [
        {
          title: "post x-1",
          content: "Yabba dabba do!",
          author: {
            connectOrCreate: theAuthor
          },
        },
        {
          title: "post x-2",
          content: "Yabba dabba do!",
          author: {
            connectOrCreate: theAuthor
          },
        },
      ],
    },
  },
});

I can reproduce the behavior but looks like this is expected from the above conversation so I am marking this as a question. If you kind this should be further addressed, please comment here :)

Since the example I have provided already has the nested creates being contained within an array, is there no way to just ensure that the requests are processed in the order provided?  This would simplify things considerably.

It also seems, at least, for me, lack of clarity as to exactly what the Prisma Engine is or is not responsible for in terms of ordering of requests.  Is this documented anywhere?

Prisma Engine is the internal component written in Rust used by Prisma Clients(Javascript and Go clients right now). You can find its code here: https://github.com/prisma/prisma-engines
So essentially the Prisma Client is just a wrapper around this engine. Clients send a wire protocol call to the engine over UDS right now and the engine decides how to execute the query, generate the relevant sql and return the executed result. The engine generates a query graph of your call and decides then it walks that graph generating sql and executing them over the database pool it has initialize during the startup. Right now in the graph, order of execution of connect and create is not guaranteed.

To reproduce this with the provided 2.12.0 I had to switch to a system not running OpenSSL 3 (in my case then Windows) and downgrade node to 12.18.4 (because of https://github.com/nodejs/node/issues/35582).
With that I indeed can reproduce the original report:
C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug>npx ts-node ./script.ts
PrismaClientKnownRequestError2:
Invalid `prisma.group.create()` invocation:

  Query interpretation error. Error for binding '4': AssertionError("[Query Graph] Expected a valid parent ID to be present for a nested connect on a one-to-many relation.")
    at PrismaClientFetcher.request (C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug\node_modules\@prisma\client\runtime\index.js:79353:15)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  code: 'P2016',
  clientVersion: '2.12.0',
  meta: {
    details: `Error for binding '4': AssertionError("[Query Graph] Expected a valid parent ID to be present for a nested connect on a one-to-many relation.")`
  }
}

After upgrading to 4.16.1, Prisma returns a much better error message:
C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug>npx ts-node ./script.ts
PrismaClientKnownRequestError:
Invalid `prisma.group.create()` invocation in
C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug\script.ts:18:22

  15
  16
  17 // Create 2 posts by new user
→ 18 await prisma.group.create(
An operation failed because it depends on one or more records that were required but not found. No 'User' record(s) (needed to inline the relation on 'Post' record(s)) was found for a nested connect on one-to-many relation 'PostToUser'.
    at Rn.handleRequestError (C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug\node_modules\@prisma\client\runtime\library.js:174:7325)
    at Rn.handleAndLogRequestError (C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug\node_modules\@prisma\client\runtime\library.js:174:6754)
    at Rn.request (C:\Users\Jan\Documents\throwaway\2020-11-25-Prisma-P2016-Bug\node_modules\@prisma\client\runtime\library.js:174:6344) {
  code: 'P2025',
  clientVersion: '4.16.1',
  meta: {
    cause: "No 'User' record(s) (needed to inline the relation on 'Post' record(s)) was found for a nested connect on one-to-many relation 'PostToUser'."
  }
}

Note that above colleagues already discussed that this might indeed not be intended to work any different, so this bug/2-confirmed only confirms that the behavior describe is happening - we might still close this issue with "works as expected".


Get Data from the Internet

Subsection Number 8:
.addConverterFactory(Json.asConverterFactory("application/json".toMediaType()))
marked as red because:
https://stackoverflow.com/questions/57358023/okhttp3-in-kotlin-string-mediatype-does-not-work
So the 2020 answer from Stackoverflow is missing as a task, before the said task

Hello @folsze,
Thank you for reaching out to us and sharing your feedback. The code block is updated, it should be .addConverterFactory(Json.asConverterFactory(MediaType.get("application/json"))):


feat: change compression of sequences to xz

Description of proposed changes
compress sequences with xz -2 -c instead of gz due to superior performance on fasta files (with nearly identical genomes)

I added a new script called ./bin/download-from-s3 which does the opposite of ./bin/upload-to-s3, that is downloads and decompresses a file, whether it's .gz or .xz. We now need to carefully replace all the aws cp ... | gunzip ... commands with it.

Looks like this work now! we need to time this merge with a change in ncov since it is currently expecting a gz file.

Yes, It would be good to know when we make this switch so I can adjust my download rules, as I imagine the old files will continue existing and I could continue pulling old files without realising (this has happened before 🙃 ).

Closing this PR as a rebased version (#194) has been merged


AccessControl for routes (permissions with "/" as prefix)

With a AccessControl component access to routes could be easily restricted.
Permissions with "/" as prefix could be used to test if a user has access to a specifc route.
Usage:
    'as access' => [
        'class' => 'dektrium\rbac\components\AccessControl',
        'allowRoutes' => [
            '/debug/default/toolbar',
            '/debug/default/view',
            '/debug/*',
        ],
    ],
````

I'll try to implement this in the next few weeks/months.

I don't understand how does this differ from yii\filters\AccessControl?

Sorry, I don't have much experience with Yii.
With yii\filters\AccessControl I can restrict access to routes (actionXY) by using rbac permissions?

Yes, you can.
'accessControl' => [
    'class' => 'yii\filters\AccessControl',
    'rules' => [
        [
            'allow' => true,
            'actions' => ['create'], // <-- action name
            'roles' => ['createPost'], // <-- permission name
        ],
        [
            'allow' => true,
            'actions' => ['delete'],  // <-- action name
            'roles' => ['deletePost'], // <-- permission name
        ],
    ],
],

I had a similar issue.  Initially routes or 'auth_items' were created '/route/*' for example.  yii2-rbac had this as invalid in the model.  I changed models\AuthItem:
['name', 'match', 'pattern' => '/^[\w][\w-.:]+[\w]$/'],
to
['name', 'match', 'pattern' => '/^.[\w][\w-.:]+[\w]$/'],
to allow creation/editing of the /path/ permissions.
Speaking of, I have a question dmeroff:  I have some users that need access to /user/admin/* , but not /rbac/*  .  I hide this in the menus  like:
'visible' => (isset(Yii::$app->extensions['dektrium/yii2-rbac']) && Yii::$app->user->can('sysadmin')),
Regardless of what I have in 'auth_item', the adminPermission name always allows access to both.  Do I have to use AccessControl to over-ride RBAC/user permissions?  I need a sysadmin (allows access to create/edit users) and an rbacadmin (allows access to users and allows controls to create permissions/roles).
Thanks!

Bill

As an update here.  allow one user 'sysadmin' to allow access to /user/ routes, but allow a second user 'rbacadmin' allow access to only /rbac/ routes, I did the following.
Set the adminPermission to 'sysadmin'.  Initially, this allows sysadmin to do rbac controls.  Then, changed:
yii2-rbac\Modules.Php:
from
                   [
                        'allow' => true,
                        'roles' => ['@'],
                        'matchCallback' => [$this, 'checkAccess'],
                    ]

to
                   [
                        'allow' => true,
                        'actions' => ['index', 'update', 'delete', 'create'],
                        'roles' => ['rbacadmin'],
                    ]

Thanks all.


Add skeleton code for REST API request routing using express

Is there a way to diffbase? I want to see this PR diff on your previous PR

For now, I changed the base branch to the branch in my previous PR. Now you can see the difference from my previous PR. But I think I need to change back the base branch to master before merging later.
Another way is to still use master as the base branch and you can view changes only from the commits after the last commit in my previous PR. But then that would be more inconvenient for you.
Unfortunately, I don't know of a better way than either of these.

Is there a way to diffbase? I want to see this PR diff on your previous PR

Should be good now, since I already merged my previous PR.


If ls or other system utilities are customized, goenv fails

MacOS and many users frequently have ls customized in ways that break goenv.
For example when ls has -F turned on directories are listed with a trailing slash/ which breaks the fuzzy_match code in scripts/use
goenv should be agnostic about how LS functions, perhaps unsetting things like LSCOLORS and calling /bin/ls instead of trying to call ls without a path.
Right now I've patched this by adding modifying the use code to call
    fuzzy_match=$($LS_PATH -1 "$GVM_ROOT/gos" | $SORT_PATH | $GREP_PATH "$version" | $HEAD_PATH -n 1 | $GRE\
P_PATH "${version}")

    # strip trailing slashes
    fuzzy_match=`echo $fuzzy_match | sed s^/$^^`

But this isn't a great solution.

@netik kindly try out this one: https://github.com/ankitcharolia/goenv

@netik if you have time and want to submit a solution via PR I'd be fine with changing the behavior.

Fixed in v2.1.13


FP1 (RTCZCGQ11LM) support

Dear,
I'm thinking of buying the Xiaomi Gateway and then integrating it into home assistant. I have 2 concerns

does this integration support FP1 devices ?
does it support the CN gateway as it looks like the FP1 only works with this one ?

@AlexxIT Hi Alex, would it be possible to have a quick look as this should be quick to answer?

FP1 seems to be only working with aqara gateways.

No. Don't supported for now.

@sorryusernameisalreadytaken the vendor told me it works with the Chinese Xiaomi hub, which might make sense as it is currently only intended for the Chinese market.
Let's say, I would buy an Aqara or Xiaomi hub. Would I see the product via this integration or not ? (full functionality ?)
What is the difference btw this custom integration and the one that can be found standardly from HA ?

@AlexxIT thank you for your response. Any idea when you would be able to support it ? @sorryusernameisalreadytaken  Did you do tests with this integration or the standard HA one ?

I'm not sure. Have a lot of projects.


workbox-build:  add option to handle dynamic routes when using generateSW

This is not a bug, it is an enhancement for dynamic routes configuration.
Library Affected:
workbox-build: generateSW method
Browser & Platform:
do not apply, it is a node module
Feature Request Description:
When building an SPA, using generateSW from workbox-build  module to build the service worker, there will be dynamic routes, for example user/:id: there is no way to configure dynamic navigation on generateSW.
For example, we only can add the SPA fallback, generateSW will generate this:
e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))

It will be very usefull if we can use a new option, or expose registerRoute on configuration to serve the dynamic routes content.
For example, I have a custom service worker using injectManifest to achieve the behavior:
// sw.ts
import { precacheAndRoute, cleanupOutdatedCaches, createHandlerBoundToURL } from 'workbox-precaching'
import { clientsClaim } from 'workbox-core'
import { registerRoute } from 'workbox-routing'

declare let self: ServiceWorkerGlobalScope

self.skipWaiting()
clientsClaim()

// self.__WB_MANIFEST is default injection point
precacheAndRoute(self.__WB_MANIFEST)

cleanupOutdatedCaches()

const userHandler = createHandlerBoundToURL('user/:id')
const indexHandler = createHandlerBoundToURL('index.html')

registerRoute(/./, async(options) => {
  const { url } = options
  if (url.pathname && url.pathname.startsWith('/user/'))
    return await userHandler (options)

  return await indexHandler(options)
}, 'GET')

The main difference is to use a (simple or complex) configuration option entry instead writing a custom service worker, something like using plugins options on runtimeCaching.
You can see an example here: https://github.com/antfu/vitesse/discussions/169

It's not obvious from the name, but you can configure the  urlPattern in a runtimeCaching entry with any arbitrary JavaScript you want that conforms to the matchCallback interface, and similarly anything for handler that conforms to the handlerCallback interface.
So the following is valid:
{
  runtimeCaching: [{
    urlPattern: ({url}) => url.pathname.startsWith('/user/'),
    handler: () => caches.match('/user.html', {ignoreSearch: true}),
  }],
  // ...other config options...
}

The trickier part about what you're trying to do is that you probably are not going to have access to the createHandlerBoundToURL() from within that configuration code, so you'd need to rely on, e.g., just doing a caches.match() while ignoring the search portion of the URL.
I am not eager to extend generateSW's runtimeCaching significantly at this point, as more complex scenarios are really what injectManifest is intended for. Trying to replicate everything that's possible imperatively via more and more declarative configuration options is ultimately a losing battle. Hopefully that guidance based on the current functionality is sufficient for you.

@jeffposnick with v6.4.2 using the runtimeCaching  approach, the handler is only called with external resources (I'll try with a custom sw):

I'm not sure if this explains your issue, but using caches.has() in a urlPattern callback is not going to give you the behavior you want, since it returns a Promise, and that will always be evaluated as a truthy value.
We have some development mode logging to catch this if you return a Promise, but because you're using &&, it's going to get translated into a boolean, which won't trigger the logging:
https://github.com/GoogleChrome/workbox/blob/b47500cd8a20719f4f2d7f163139408234a70f4a/packages/workbox-routing/src/Router.ts#L344-L354


refactor event schedulers to use explicit game rules

About the PR

Refactors basic & ramping event scheduler to take explicit event definitions in yml instead of just doing whatever the hell they wanted to. Also added a new RandomRuleSystem for selecting and running a random gamerule from an explicit list of gamerules.
Why / Balance

Shuttle events, gift events, the desire to add things that shouldn't be in event schedulers.
I cannot overstate how many levers this adds to event balancing by using combinations of multiple schedulers and RandomEvents which both accept orGroups and weights.
Technical details

Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

If you have events you want run via the basic/ramping event scheduler, they need to be defined explicitly now.
Changelog

no player facing changes, except that maybe cargo gifts and unknown shuttle events will be much less likely.

would it make sense to exclude rules from a possible choice if it has already been selected before?  thus ensuring that all rules are selected before they start repeating

would it make sense to exclude rules from a possible choice if it has already been selected before? thus ensuring that all rules are selected before they start repeating

You could achieve this by rule by setting the specific rule's params

Survival not getting gifts from NT was an accident, but it is funny, so I'm leaving it.

Ready for review. I handled all the issues I could dream up.

Should all be addressed with the exception of the IComponentFactory dependency thing which I think I need a hint on if its a big issue.

with the exception of the IComponentFactory dependency thing which I think I need a hint on if its a big issue.

you can grab it by doing EntityManager.ComponentFactory

you can grab it by doing EntityManager.ComponentFactory

Thanks! done!

One sec I noticed an issue

I fixed the issues.

Guh, what did I break

Woohoo She floats!
Okay I updated this to use EntitySpawnEntries.
The only thing I'm kind of uncertain about working is the toolshed commands in the BasicStationEventSchedulerSystem.
I have no idea how to test them, so I just updated the logic to how they should work with the new stuff. I don't know if its okay to make them take an EntityPrototype as an argument, maybe it needs to be a string and then cast. If someone can make me a toolshed call that works on the current build I'll make sure it works. I've never seen any of those commands get used before though, and I have nfi how to use them.

Hello! Do you know of a bug that may have been caused by your changes? Check this issue: https://github.com/space-wizards/space-station-14/issues/31090

Hello! Do you know of a bug that may have been caused by your changes? Check this issue: #31090

I have been sent a couple occurrences, but have thus far been unable to replicate it. Please do let me know of more occurrences, or if you find a consistent occurrence.


Loses all styling when exporting with a font size?

Please prefix your issue with one of the following: [BUG] [PROPOSAL] [QUESTION].
Package version, Laravel version
Package: 2.1
Laravel: 5.3
Expected behaviour
Export an xlsx file with a larger font size for one cell
Actual behaviour
Lose all styling
Steps to reproduce the behaviour

		    Test

If I remove the font-size: 18px I get a file with the rest of the styling on that cell, if I add the font-size: 18px I get an error when opening the excel file that says:
"We found a problem with some content in 'example.xlsx'. Do you want us to try to recover as much as we can?"
Clicking yes opens it, but with no styling.
This is in Microsoft Office Plus 2016

I'm unable to reproduce this.

You can fix it by not giving it a unit like this

		    Test

reference: https://github.com/PHPOffice/PHPExcel/issues/1201

Same for, me. The problem is that it is not working with px. Not only inline styles, but also external css file. Work around which provided by mrclronald is working only for Excel file, but not for UI, also, if it would work I don't, want to use inline style in all places I need.
if I write in external css: td {width:200px} - columns became 0 px wide in excel file and 200px wide in ui. Otherwise if I use style like this: td { width:200 } - columns become very wide in excel and auto in UI
Additional if you use "px" in your style, excel file opens with recovery and error message:
Removed Part: /xl/styles.xml part with XML error.  (Styles) Load error. Line 2, column 0.
Repaired Records: Cell information from /xl/worksheets/sheet1.xml part
PHP version: 7.1.13
Laravel version: 5.6.15
Package version: 2.1.27


Cannot edit nodejs function dependencies in json format

Description
Editing node.js function dependencies in a json format via kyma ui results in validation error
Expected result
I should be able edit dependencies using json format
Actual result

Steps to reproduce
Troubleshooting
I tried with string with special characters and it worked.. but should not be this way, right?
{\n  \"name\": \"tst\",\n  \"version\": \"0.0.1\",\n  \"dependencies\": {\n    \"axios\": \"^1.6.8\"\n  }\n}

hi @kwiatekus
Fix is merged, we are planning PROD release around 02.04., so, for now, it will be available on dev and stage soon.
Best regards
Mateusz


Modified refresh code to force updates to the Media Player control when ...

...the window lacks focus.

I can't auto-merge this (and am not near my code box), but it looks good! I'll merge this ASAP and get it pushed out.

Yeah- sorry about that. I forgot to fetch your latest upstream code before making the changes.
Glad to see you patched the way it handles resuming a paused stream, BTW. I've run into the weirdness associated with an out-of-sync stream a couple of times in just this past week. The fix is very welcome.
On Feb 21, 2015, at 11:30 PM, Jamison Greeley<EMAIL_ADDRESS>wrote:

I can't auto-merge this (and am not near my code box), but it looks good! I'll merge this ASAP and get it pushed out.

Reply to this email directly or view it on GitHub.


New transform: for loops to for of

Convert this
for (var i = 0; i < fruits.length; i++) {
   console.log(fruits[i]);
}

to this
for (let fruit of fruits) {
  console.log(fruit)
}

This is definitely something that's been in the plans for a long time. Unfortunately it's not quite so simple transforms to write, so haven't really taken up it so far. There are several things to consider:
Skipping cases where array index is also used
I think the following can't be transformed:
for (var i = 0; i < fruits.length; i++) {
   console.log(fruits[i], i);
}

Naming of the loop variable
Sometimes there's a var declared inside the loop, which we could eliminate:
for (var i = 0; i < fruits.length; i++) {
   var fruitItem = fruits[i];
   console.log(fruitItem);
}
// -->
for (var fruitItem of fruits) {
   console.log(fruitItem);
}

At other times we'll need to make up the name by ourselves. A fairly good case is when the array is named in plural then we can pick a variable name that's the singular form of it:
for (var i = 0; i < fruits.length; i++) {
   console.log(fruits[i]);
}
// -->
for (var fruit of fruits) {
   console.log(fruit);
}

I'm not really sure what to do with other cases where we're looping over a variable like array. Perhaps we can add -Item suffix:
for (var i = 0; i < array.length; i++) {
   console.log(array[i]);
}
// -->
for (var arrayItem of array) {
   console.log(arrayItem);
}

But this way we might also end up with silly stuff like itemItem.
Automatically generating useful variable names is a tricky business...
Avoid naming conflicts
When we introduce a new name we'll also have to watch out for possible existing variables with the same name, like:
var fruit = "banana";
for (var i = 0; i < fruits.length; i++) {
   console.log(fruits[i]);
}

PS: And this transform should not change from var to let or const - this is the job of a let transform. It should keep the existing variable kind.

After laying out my thoughts above I realized it might not be so hard after all and did an initial implementation. Currently only supporting the case where we already have a name for loop variable.
There's also the case that variable scoping is not properly accounted for. I wonder whether it would make sense to only perform the transform when the loop uses let/const - in which case I don't need to worry about loop variables being used outside the loop. One can simply run let transform first and for-of transform afterwards.

@nene What is the expectation from a transform (or in general with lebab)?
Is it to convert all your code to es2015?
OR
Is to transform code and learn from the changed code?
Take this for example: Accurate singular names for fruits, array is not a trivial problem, not completely solve-able by a script. You would want a human to step in and see what would make more sense.
I see lebab as a companion (not as a tool) to convert code to es6

@siddharthkp I think that's my general opinion as well. One really shouldn't use Lebab blindly - the changes need some human review.
Then again, Lebab should not do changes that might break stuff. Ideally when reviewing the transformed code you would not need to fix any actual bugs, but more like manually transform the cases that Lebab didn't handle or adjust the code style when Lebab didn't format the code to the best of your preferences.
In that regard some transforms are very safe, like obj-shorthand. Some can currently fail with rare edge-cases, like arrow, while the goal is to fix these bugs. But some transforms don't guarantee strictly equivalent code - like the default arguments aren't really equivalent to a = a || 3 - I've classified those to the "Unsafe" category. The latter ones can't really be implemented in a way that would make the transform perfectly safe, but they work fine for most of the code.

This is now released as v2.2.0

Closing this for now, but created a follow-up for further development: #169


test: add a default greeting to avoid printing a null pointer.

urgent: unit test breaking fix

[ ] documentation is added or updated
[x] tests are added or updated

Was this a new test? Or is it a side effect from another change?

It smells like an optimising compiler got a bit cleverer.  Early failure in that chain of if or if or if will leave the pointer null.  I didn't see any recent changes to the file in question when I looked.

Agree to urgent

It seems -Werror=format-overflow becomes more aggressive than before. Printing a NULL sounds no real harm to format-overflow?

Merged, thanks for the quick reviews.

I've merged this to all the active branches as the CI error is there as well.

Thanks @t8m.  I didn't check older branches.


Device back button functionality issue at the new activity

Current issue:
If the back button is clicked to go back to the last visited activity all functionalities from the UI elements are not working.
Therefore we have to ensure that all functionalities are working on the new activity after clicking the device back button.

back Button needs to be overwritten to change the state of the ionic app as well. fixed in commit 1172e3.


container security service (Aquasec or Twistlock)

Hello Team,
Any plan on implementation of Container security service (Aquasec or Twistlock)?

Services like Aquasec, Twistlock, etc will likely never be part of the baseline version here.  I'm currently working on a "Regulated" environments variant of this baseline in which concerns like this are significantly more common. That said, I'm not sure how easy it's going to be to demonstrate any of these features in a way that doesn't make the deployment/explanation process a burden to work through. Even in there, we might only be able to mention services like that vs giving a implementation.  If you can help us consider an easy way to demonstrate an ISV's solution like this without requiring licensing agreements being held by our learners or without complicating the narrative (we're teaching 201 level content in this baseline), I'm open to suggestions.  It's a very reasonable "next step" on your journey.

Services like Aquasec, Twistlock, etc will likely never be part of the baseline version here.  I'm currently working on a "Regulated" environments variant of this baseline in which concerns like this are significantly more common. That said, I'm not sure how easy it's going to be to demonstrate any of these features in a way that doesn't make the deployment/explanation process a burden to work through. Even in there, we might only be able to mention services like that vs giving a implementation.  If you can help us consider an easy way to demonstrate an ISV's solution like this without requiring licensing agreements being held by our learners or without complicating the narrative (we're teaching 201 level content in this baseline), I'm open to suggestions.  It's a very reasonable "next step" on your journey.

Going to close the question for now.  If you do have any suggestions on the best way to teach users about these features, please do let me know.

Going to close the question for now.  If you do have any suggestions on the best way to teach users about these features, please do let me know.


Profile's handle is Unique

Description
We'd like to make the handles on profiles a slug in the URL, so instead of /profiles/3 the user will see /profiles/ChaelCodes. In order to do this, we need to ensure the handle is unique, and url-able. This story is to validate that new profiles have unique handles, regardless of the case. If you could include some common URL checks, like removing '/', '?', and spaces, that'd be great!
Implementation
A model-level validation on Profile that checks for the uniqueness of handle would be great.

Hi @ChaelCodes, can you assign this one to me? I think there isn't a MR for this one yet.

@yagosansz Thank you! You're assigned. I look forward to seeing your PR!


An error has occured with Pandora

Updated to most recent version (was happening before that), main window says:
An error has occured with Pandora
LISTENER_NOT_AUTHORIZED

Not sure but it seems to work now.  Pandora limits how many
skips/songs a non-Pandora One user can have even through the API.
This should work again tomorrow, but is there possibly anything else you
can think of that may have triggered it?
On Thu, Nov 17, 2011 at 11:16 AM, Pete Brousalis <
<EMAIL_ADDRESS>
wrote:

Updated to most recent version (was happening before that), main window
says:
An error has occured with Pandora
LISTENER_NOT_AUTHORIZED

Reply to this email directly or view it on GitHub:
https://github.com/alexcrichton/hermes/issues/10

Oh, nevermind then :)


Fix broken link

Will this broken link be fixed?

Got fixed few days ago to a different location see: https://github.com/TAPevents/tap-i18n/commit/4dc2fceead51c18a23172b8bfc70e2c61bed477d