Add prebuilt VSCode themes

Hi!
As discussed on X/Twitter https://twitter.com/djgeisi/status/1774771077173985694 this PR introduces 43 popular VSCode like themes for tempest/highlight.
Background Infos
I wrote a script to extract the tempest/highlight relevant CSS properties from VsCode themes. This script is using a simple Mapping which looks like this:
$tempestMapping = [
   'backgroundColor' => 'colors.editor.background',
   'commentColor' => 'tokenColors.comment.foreground',
   'textColor' => 'colors.editor.foreground',
   'keywordColor' => 'tokenColors.keyword.foreground',
   'propertyColor' => 'tokenColors.entity.name.function.foreground',
   'typeColor' => 'tokenColors.entity.name.class.foreground',
   'genericColor' => 'tokenColors.constant.language.foreground',
   'valueColor' => 'tokenColors.string.foreground',
   'variableColor' => 'tokenColors.variable.foreground',
];

I extracted the VSCode theme JSON files from here:
https://github.com/shikijs/textmate-grammars-themes/tree/main/packages/tm-themes
Considerations
I placed the themes in the already existing themes folder. This folder gets a bit messy now, but I could not change the folder structure; it would have been a breaking change.
If you have a better idea, you're welcome.
Btw, it should be possible to extract the terminal themes from VsCode as well. This is not part of this PR, but when you are interested, I can give it a try.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.575%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1290

Relevant Lines:
1364

💛  - Coveralls

This is absolutely amazing! Thanks!
The folder is indeed a bit messy, but let's not worry about it too much 😁

Btw, it should be possible to extract the terminal themes from VsCode as well. This is not part of this PR, but when you are interested, I can give it a try.

If you're up for it, then yes! Terminal themes are different in that you only have a limited about of colors available (as far as I know). But let me know what you come up with :)

@geisi We recently added two new classes: .hl-number and .hl-boolean; I was wondering if you were perhaps able to regenerate the themes?

@brendt Yes, I will have a look at it.
Anyways I can provide the Generation code as well It is nothing special:
Service Class:
<?php

namespace App\Services;

use Exception;
use Illuminate\Support\Arr;
use Throwable;

class Vscode2TempestService
{
    /**
     * @throws Throwable
     */
    public function handle(string $theme): string
    {
        // Path to the VS Code theme JSON file
        $vsCodeThemePath = resource_path('themes/'.$theme.'.json');

        // Read and decode the JSON file
        $themeJson = file_get_contents($vsCodeThemePath);

        throw_unless(filled($themeJson), new Exception('Theme not found'));

        $theme = json_decode($themeJson, true);

        $tempestMapping = [
            'backgroundColor' => 'colors.editor.background',
            'commentColor' => 'tokenColors.comment.foreground',
            'textColor' => 'colors.editor.foreground',
            'keywordColor' => 'tokenColors.keyword.foreground',
            'propertyColor' => 'tokenColors.entity.name.function.foreground',
            'typeColor' => 'tokenColors.entity.name.class.foreground',
            'genericColor' => 'tokenColors.constant.language.foreground',
            'valueColor' => 'tokenColors.string.foreground',
            'variableColor' => 'tokenColors.variable.foreground',
        ];

        $tokenColors = [];

        //restructure tokenColors array
        foreach (Arr::get($theme, 'tokenColors', []) as $token) {
            $scopes = $token['scope'] ?? [];
            $scopes = is_string($scopes) ? [$scopes] : $scopes;

            foreach ($scopes as $scope) {
                if (isset($tokenColors[$scope])) {
                    $tokenColors[$scope] = array_merge($tokenColors[$scope], $token['settings']);
                } else {
                    $tokenColors[$scope] = $token['settings'] ?? [];
                }
            }
        }

        $theme['tokenColors'] = $tokenColors;

        // Convert dot notation to assoc array
        $theme['tokenColors'] = Arr::undot($theme['tokenColors']);
        $theme['colors'] = Arr::undot($theme['colors']);

        $data = [];

        foreach ($tempestMapping as $tempestKey => $vsCodeKey) {
            $data[$tempestKey] = Arr::get($theme, $vsCodeKey);
        }

        return view('tempest-css', $data)->render();
    }
}

Template File
pre, code {
color: {{$textColor ?? '#000'}};
background-color: {{$backgroundColor ?? '#f3f3f3'}};
}

.hl-keyword {
color: {{$keywordColor ?? '#4285F4'}};
}

.hl-property {
color: {{$propertyColor ?? '#34A853'}};
}

.hl-attribute {
font-style: italic;
}

.hl-type {
color: {{$typeColor ?? '#EA4334'}};
}

.hl-generic {
color: {{$genericColor ?? '#9d3af6'}};
}

.hl-value {
color: {{$valueColor ?? '#000'}};
}

.hl-variable {
color: {{$variableColor ?? '#000'}};
}

.hl-comment {
color: {{$commentColor ?? '#888888'}};
}

.hl-blur {
filter: blur(2px);
}

.hl-strong {
font-weight: bold;
}

.hl-em {
font-style: italic;
}

.hl-addition {
display: inline-block;
min-width: 100%;
background-color: #00FF0022;
}

.hl-deletion {
display: inline-block;
min-width: 100%;
background-color: #FF000011;
}

.hl-gutter {
display: inline-block;
font-size: 0.9em;
color: #555;
padding: 0 1ch;
}

.hl-gutter-addition {
background-color: #34A853;
color: #fff;
}

.hl-gutter-deletion {
background-color: #EA4334;
color: #fff;
}

Ah, nice! Is that code available somewhere? I don't want to bother you every time with an update, so maybe we can include it in this repository?

@brendt
Jep, I think it is easily possible to add this to the Tempest repository. The current code will introduce some (dev) dependencies to the Laravel core. But it could be migrated to native php code.

Do you have a repo somewhere? I can probably port it myself :)


[BUG] Tables/ Long LInes Are Truncated When Imrpove Style List Is Enabled

Describe the bug
The tables are not appearing properly (being truncated)
To Reproduce
Steps to reproduce the behavior:

Enable Improve Style LIsts
Look at a long line/table.

Expected behavior
The table/line should not be truncated.
Screenshots
PLease see attached video.

@grassbl8d thanks for the feedback. I can't reproduce the issue. It looks like it was fixed after the release of version 2.0. Could you try to install the latest version of the plugin and check the issue again?


feat: report usage based metrics

Describe your changes
Work in progress to report usage based metrics
How best to test these changes
Do not merge!
Issue ticket number and link
#918

Codecov Report
Patch coverage: 71.79% and project coverage change: +0.07 :tada:

Comparison is base (1db3575) 30.41% compared to head (4b0ee3f) 30.48%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #945      +/-   ##
==========================================
+ Coverage   30.41%   30.48%   +0.07%
==========================================
  Files         185      185
  Lines       20862    20898      +36
==========================================
+ Hits         6345     6371      +26
- Misses      13765    13774       +9
- Partials      752      753       +1

Impacted Files
Coverage Δ

store/kv/fdb.go
31.59% <0.00%> (ø)

server/services/v1/database/row_reader.go
57.28% <33.33%> (-0.15%)
:arrow_down:

server/metrics/measurement.go
74.05% <71.42%> (-0.17%)
:arrow_down:

store/kv/kv_store.go
31.70% <91.66%> (+7.16%)
:arrow_up:

server/middleware/measure.go
72.86% <100.00%> (+1.32%)
:arrow_up:

... and 2 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Read counting example:
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=1153
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=2306
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=3459
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=4612
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=5765
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=6918
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=8071
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=9224
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=10377
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=11530
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=12683
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=13836
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=14989
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=16142
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=17295
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=18448
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=19601
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=20754
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=21907
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=23060
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=24213
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=25366
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=26519
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=27672
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=28825
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=29978
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=31131
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=32284
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=33437
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=34590
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=35743
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=36896
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=38049
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=39202
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=40355
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=41508
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=42661
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=43814
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=44967
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=46120
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=47273
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=48426
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=49579
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=50732
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=51885
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=53038
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=54191
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=55344
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=56497
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=57650
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=58803
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=59956
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=61109
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=62262
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=63415
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=64568
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=65721
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=66874
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=68027
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=69180
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=70333
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=71486
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=72639
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=73792
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=74945
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=76098
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=77251
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=78404
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=79557
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=80710
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=81863
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=83016
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=84169
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=85322
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=86475
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=87628
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=88781
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=89934
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=91087
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=92240
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=93393
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=94546
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=95699
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=96852
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=98005
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=99158
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=100311
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=101464
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=102617
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=103770
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=104923
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=106076
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=107229
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=108382
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=109535
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=110688
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=111841
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=112994
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=114147
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=1153 Total bytes read=115300
2023-03-24T15:47:48Z DBG metrics/global_status.go:104 Added read bytes Bytes read=0 Total bytes read=115300
2023-03-24T15:47:48Z DBG kv/fdb.go:472 tx Rollback
2023-03-24T15:47:48Z DBG metrics/global_status.go:151 Recording request to active chunk
2023-03-24T15:47:48Z DBG metrics/global_status.go:156 Recording write bytes tenantName=default_namespace writeBytes=0
2023-03-24T15:47:48Z DBG metrics/global_status.go:158 Recording read bytes readBytes=115300 tenantName=default_namespace
2023-03-24T15:47:48Z DBG metrics/global_status.go:160 Recording write units tenantName=default_namespace writeUnits=0
2023-03-24T15:47:48Z DBG metrics/global_status.go:162 Recording read units readUnits=29 tenantName=default_namespace

Left: configs, retention, global status in it's own goroutine.

The measuring of the writes for secondary indexes looks good but I can't quite see how you are measuring the reads from the secondary index

We took that out. I just had a comment that this is where we would measure it separately if we need to do so in the future.


[Wait for #1308] [LayerNode] Change flatten and distribute to prop

[Pending commit: #1308]

[LayerNode] Change flatten and distribute to prop

**Changes proposed in this PR:**
- Fix bug on `loadProperties`
- Add flatten and distribute to prop

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1310. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @zhoonit, nntrainer/layers/layer_node.cpp does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @zhoonit, nntrainer/layers/layer_node.cpp does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1310-202106181447300.62993407249451-5638b2df29884a2943eecd00235e6059898c43f3/.

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1310-202106221543130.34666109085083-54ac8ec23ed1468885e45342f61e583ce1831a97/.


remove replaced endpoints /api/seal, /api/encode, /api/decode

@adrianiacobghiula can you please check the e2e tests, as tey currently fail.

Could you please release a new version after the merge of this PR (and maybe a release before the merge of this PR)

Could you please release a new version after the merge of this PR (and maybe a release before the merge of this PR)

I made a pre release v3.0.0-pre
As there are anyway many changes in configuration, since I changed to use the sealed-secret go api in stead of using the kubeseal cli, I think it is OK just do make a proper v3.0.0 release with all final changes.


Removing some dead code in the 'generateExport' function.

I just removed some commented code lines.
If you guys know, other places i can remove in this same PR.

Send future pull requests to the "develop" branch


Index issues when using tf.gather_nd to aggregate queue_state

Hi Miquel,
At the end of the link and queue to path block of the RouteNet-Fermi, path_state_sequence is updated, and previous_path_state is added in front of each item. At this time, the feature situation in previous_path_sequence[i] should be [p[i], (queue[a]link[x]), ....], where p[i] is the i-th path_state feature, (queue[a]link[x]) is the updated feature from a-th queue and x-th link.
Then, at the beginning of the path to queue block, path_gather uses the index of path_to_queue to aggregate queue features from previous_path_sequence. However, the index sequence number of each queue in path_to_queue has changed due to the addition of path_state_state above (index from path_to_queue[:,:,i] should + 1). Is the original queue feature still aggregated at this time?
And, What is the function of path_state_sequence = tf.concat([tf.expand_dims(previous_path_state, 1), path_state_sequence], axis=1) ?
The code here is a bit complicated for me, please correct me if there is something wrong with my understanding.
Best Regards,
Henry Fang

Dear Henry,
I'll try to explain it in more detail to see if I can clarify it for you. I will explain this with a simple path, but this applies to all of them at once.
Imagine we have a path of length 3 that goes through 3 links and 3 queues, so p_1 = [q_1,l_1,q_2,l_2,q_3,l_3]. Let's start the message passing. Here we will have 6 hidden states. For simplicity, I will use, p_1, q_2, l_1, q_2...
The queue_to_path in this case will be [[1,2,3]] and the link_to_path will also be [[1,2,3]] in this case they are ordered, but we could have a path that follows something like p_2 = [q_1,l_1,q_5,l_7,q_2,l_8], these are simply ids that we define when we build the graph.
Let's start the message passing from links and queues to paths. First, we gather the queue_states using those index tf.gather(queue_state, queue_to_path), so we get queue_gather = [[q_1,q_2,q_3]] and the link_gather = [[l_1,l_2,l_3]], however, we want our sequence to be [q_1,l_1,q_2,l_2,q_3,l_3], so we need a previous operation tf.concat([queue_gather, link_gather], axis=2), to store it like that.
This concatenation then is fed into the path_update_rnn. This will return two outputs, the path_state_sequence, and the path state. The path_state_sequence contains the state of the path after going through the queue/link. For instance, path_state_sequence[0] contains the path state after going through q_1, path_state_sequence[1] contains the path state after going through l_1... And path_state contains the state of the path after going through the last link (in this case l_3) which is the same as path_state_sequence[-1].
Now we go to the path to queue message passing. This is a little bit more complicated since we want not to take the state of the path, but to take the the state of the path before going through this queue. For this, the path_to_queue would be [[[1,0]],[[1,2]],[[1,4]]]. [1,0] -> p_1 position 0 (q_1), [1,2] first path position 1 (q_2), [1,4] first path position 4 (q_3). However, if you remember, inside path_state_sequence we have the path state AFTER the path went through the queue, and we need the state BEFORE the path went to it. So we can simply add to the path_state_sequence the previous path_state.
Hope this clarifies your questions even if I haven't responded to them directly.
If you have any more questions or you need something to be clarified, do not hesitate to ask again!
Bests,
Miquel

Dear Miquel,
Thank you for your timely reply, but I still have doubts about the path to queue message passing process.
We can return to your example to illustrate.
First of all, the concatenation obtained by tf.concat([queue_gather, link_gather], axis=2) should be [[q_1:l_1], [q_2:l_2], [q_3:l_3]], where [q_1:l_1] means splice q_1 and l_1 in the state dimension. That is, the concat here acts on the feature/state_dim dimensions of queue and link. After path_update_rnn, the result of path_state_sequence should also be [[q_1:l_1]', [q_2:l_2]', [q_3:l_3]'], where [q_1:l_1]' contains the path state after going through q_1 and l_1. In addition, the index in path_to_queue only contains the sequence number of queues in each flow, that is, path_to_queue=[[[1,0]],[[1,1]],[[1,2]]].(not [[[1,0]],[[1,2]],[[1,4]]])
But some of the code below makes me a little confused.
In line 134 of delay_model.py/jitter_model.py/loss_model.py, path_state_sequence = tf.concat([tf.expand_dims(previous_path_state, 1), path_state_sequence], axis=1). path_state_sequence concatenates previous_path_state to the starting position of each path. At this time, the result of path_state_sequence should be updated to [p_1, [q_1:l_1]', [q_2:l_2]', [q_3:l_3]'], where p_1 represents the state of previous_path_state[1] before path_update_rnn. I noticed that in path_state_sequence, the index number of the corresponding queue in each path was moved backward by one(I think this will cause path_to_queue to become the wrong index!!!). Therefore, in path to queue message passing, the queue state obtained according to path_to_queue may not be the state we expect. When path_to_queue is [[[1,0]],[[1,1]],[[1,2]]], [1, 0] -> p_1 position 0 -> (p_1), the obtained It is a state of previous_path_state[1], not q_1.
Looking forward to your reply.
Best Regards,
Henry

Dear Henry,

First of all, the concatenation obtained by tf.concat([queue_gather, link_gather], axis=2) should be [[q_1:l_1], [q_2:l_2], [q_3:l_3]], where [q_1:l_1] means splice q_1 and l_1 in the state dimension. That is, the concat here acts on the feature/state_dim dimensions of queue and link. After path_update_rnn, the result of path_state_sequence should also be [[q_1:l_1]', [q_2:l_2]', [q_3:l_3]'], where [q_1:l_1]' contains the path state after going through q_1 and l_1. In addition, the index in path_to_queue only contains the sequence number of queues in each flow, that is, path_to_queue=[[[1,0]],[[1,1]],[[1,2]]]. (not [[[1,0]],[[1,2]],[[1,4]]])

You are completely right. I got confused with a new version we are developing that separates queues and links in the path_sequence.

In line 134 of delay_model.py/jitter_model.py/loss_model.py, path_state_sequence = tf.concat([tf.expand_dims(previous_path_state, 1), path_state_sequence], axis=1). path_state_sequence concatenates previous_path_state to the starting position of each path. At this time, the result of path_state_sequence should be updated to [p_1, [q_1:l_1]', [q_2:l_2]', [q_3:l_3]'], where p_1 represents the state of previous_path_state[1] before path_update_rnn. I noticed that in path_state_sequence, the index number of the corresponding queue in each path was moved backward by one(I think this will cause path_to_queue to become the wrong index!!!). Therefore, in path to queue message passing, the queue state obtained according to path_to_queue may not be the state we expect. When path_to_queue is [[[1,0]],[[1,1]],[[1,2]]], [1, 0] -> p_1 position 0 -> (p_1), the obtained It is a state of previous_path_state[1], not q_1.

The fact that the p_1 is concatenated at the starting position is made on purpose. The state we want to use is indeed p_1 since this is the state of the path BEFORE going through q_1 (p_1). Similarly, for q_2, we are interested in getting the state BEFORE q2 and AFTER [q1:l_1] ([q_1:l_1]'). If we do not concatenate the previous path state (p_1) to the sequence, q_1 would receive the information of the path after going through q_1, and that is not 100% correct. We want to get the state of the path before going through the queue we are updating.
Best regards,
Miquel

Dear Miquel,
Thanks for your clear answer, I think I understand the logic here : )
Thanks to you and BNN-UPC for open-sourcing interesting network datasets and codes, which brought my attention and introduced me to the interesting field of network modeling. I am trying to use pytorch to reproduce RouteNet-Fermi so that I can better understand the concept. Of course, if it goes well, I will open source it and conduct further research.
Best regards,
Henry


Support dot-sourcing shell scripts (*nix)

Summary of the new feature / enhancement
A major blocker in using PowerShell for my daily driver shell on macOS is lack of support for dot-sourcing shell scripts.  Dot-sourcing is a big extensibility point for shell scripts as it allows them to update the environment of the parent process, so I cannot use tools that require a bash/zsh profile.  If PowerShell supported dot-sourcing non-PowerShell scripts, these tools could be installed by dot-sourcing them (as they are done in the bash/zsh profile) or just dot-sourcing the bash/zsh profile.
Proposed technical implementation details (optional)

Use file extension and shebang to intelligently detect shell script language.
If the file is a bash or zsh script, interpret the script in its associated interpreter.
In the same interpreter, output all the environment variables to the PowerShell process.
Set the environment variables in the PowerShell process from the output of the shell script.

Just came across this: https://github.com/oh-my-fish/plugin-foreign-env
Might be worth consideration given that fish does this

Proof of concept:
# Execute bash to obtain the environment
$divider = '----DIVIDER----'
$command = "echo && echo '$divider' && env"
if ($args.Count -gt 0) { $command = "$args && $command" }
$output = bash -c $command

# Find the divider index in the output
$i = 0
while ($output[$i] -ne $divider) { $i++ }
$i++

# Parse the environment and set it in the parent session
$output |
    Select-Object -Skip $i |
    ConvertFrom-Csv -Header 'Name','Value' -Delimiter '=' |
    ForEach-Object { Set-Item "env:$($_.Name)" $_.Value }

@SteveL-MSFT this is in your wheelhouse


Bitcoin Amsterdam open source ticket request

Hello,
I have worked on Krux, Krux Installer and Nostr-tools. I also created many bitcoin apps for the Tidbyt.
I hope to be at Bitcoin Amsterdam for the first time!
Greetings, Truus

It would be great to have Truus spreading the word about Krux in Amsterdam!

krux-installer developer here. It would be a great honor to have @PMK spreading the word in Amsterdam!
@PMK is a kruxer that has been following the project for a long time. The contributions are beyond the documented commits (tests, suggestions, ideas and support were essential during these years).

Am already looking forward to see an update on the tidbyt project from last year Amsterdam, that was great work !!


Updated KinematicBody doc file.

I updated the document to be more consistent with KinematicBody2D, in which [method move_and_slide_with_snap] is added to lines that are necessary.

This needs to be squashed before it can be merged. https://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html

This should also be combined with #38579.
Furthermore, you need to rebase the branch you're working on, because KinematicBody.xml has been renamed to KinematicBody3D.xml on master.

Superseded by changes in the master and 3.x branches (move_and_slide_with_snap() is now referenced where needed). Thanks for the contribution nonetheless!


new Cluster Overview / Node List page

This PR overhauls the Cluster Overview page to reflect updates to the Node List.

In the process, I rewrote the tooltips and some of the UI labels (orange highlights in the Admin UI Help Messaging sheet). These should also be reviewed & approved in the sheet.
Another part of this is verifying the included terminology definitions (e.g. Usable Capacity).
Once the UI is updated either in Figma or on prod, I will replace the UI screenshots here.
I want to redo the two annotated Node Map components at the bottom of the page. These are forthcoming in a new commit.
I'm trying to give a more prescriptive/diagnostic tone to the Admin UI pages as I rewrite them. Any suggestions or comments on this are welcome.

Fixes #6632
Fixes #6634
Fixes #6024
Relates to #6403 and #6227

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/522749e209ed086dd27356ff8db5556f1d27caf5/
Edited pages:

v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/755aba7d2f414ae227b69eb50b31cfec86605668/
Edited pages:

v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/4575998a2b42c7a7b39e2c229152180218aae2ad/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/dcfadab5c1bf6d02912aeef99b21fd3ed0aca692/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/4feeede7af4d20a1e029344b11e362df05c5bce3/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/c414c56bb1d5b13c12bb7c11ada7781537df3216/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/d07b9bfd4fd06f70e79eab01209b8a4aed65603c/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/145d90e12149350eec8a45157b7c21c9a87193ba/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/c2d4c3761ed3f92b117649dd963aff290a2e6ac7/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/b45c5eb1cb1b367f0b178a9147be029da7560b43/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

This PR is pending new screenshots of the Admin UI with updated copy.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/6bf52bef6148dfdbab8b22c47acddbf7eebb32bc/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/4e5a915ede96d663e48ec903b9a0be6f1121a5f3/
Edited pages:

v20.1/admin-ui-access-and-navigate.md
v20.1/admin-ui-cluster-overview-page.md


[BUG] The features I added are not in the game. I opened via play roblox and made sure it wasnt running in the backround.

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
I added the 2008 cursor and saved it and when i joined the game i did not have it. Same for the old avatar editor. But when i am luanching Roblox via play roblox, i have the custom logo.

Roblox is already running in the background, which is skipping the mod application check. Ensure Roblox is not running in Task Manager first, then launch Roblox.

I checked and roblox is not running in the backround at all.

Send Bloxstrap's latest log file here. You can find it in %localappdata%\Bloxstrap\Logs. The newest log should be right at the top.

i just got on today and i dident change anything and it is working now. Thanks for this awsome mod!


Add README.md notes on doing requests

Added a few other tidbits to the README.md to help new users, one of which i mentioned in typicode#235

Thank you, it makes things much clearer.


Different components get the same jsx id if using interpolation.

For example:
// header.js
const Header = () => (

);

// main.js
const Main = () => (

);

Both of them using interpolation in styles, and they get the same jsx id [data-jsx="3533501187"].

The fix released for this doesn't seem to have worked Im running the latest<EMAIL_ADDRESS>and Im still getting the same data-jsx values on every component when using expression.

We clarified on slack, @samjbmason had some unrelated caching issue. The patch works as expected :)


Add Domain model to track project Domains

The goal here is to make our usage of domains more explicit. This includes CNAME's, and our tracking or domain usage of people on our site.
The main fiddly bit here is that if users change their CNAME to point at another project they will have to go into the previous project's admin and delete the Domain, since the URL's are unique.
Major work

[x] Model Domain objects
[x] Migrate Canonical URL on project to Domain object
[x] Build admin panel
[x] Create objects in middleware on domain usage
[x] Allow creation of a single Canonical domain.
[x] Support Domain objects in backend sync code
[x] Port model methods

Migration Plan

Auto-create Domain objects from existing CNAME's :heavy_check_mark:
Convert "machine" domains to certified ones on User confirmation, or large amount of usage. :watch:
Force resolving of domains to existing Domain Objects :watch:
Disable Domain Object creation :watch:

I haven't tested it semantically but I reviewed the code and commented inline in a few places. Good work :) LGTM.

Edits look good, +1 pending test return

What is the ETA for releasing this? I'm planning to use Cloudflare for my custom domain.

We didn't get this deployed on thurs, so will be going out on monday or tues with some other changes.

I see this got deployed, but it still doesn't work with Cloudflare: https://docs.openchain.org. I still get the error message.

@Flavien this is already merged and your issue is separate from this feature, you should open a ticket with more details.


minio S3 documentation

To have full control over your stream, you may self host the video chunks on MinIO.

Nice!

Nice!

Looks good to me, thank you for your help and contributions!

Looks good to me, thank you for your help and contributions!


add readout-action to notification details view

When viewing a notification in DetailsView there is no way to trigger readout if it is not enabled in the settings. If automatic readout is not enabled you have to go back from detailsview to the message-list to first enable it and then go back to the message to actually hear the readout. If you prefer not to have spoken messages but want to read out single messages every now and then this is uncomfortable and distracting.
This change dynamically adds an action to the details-view that allows to trigger readout if automatic readout is not enabled in the settings

Looks great, thank you so much! Just a few requested tweaks but it should be easy to merge.
Would it be possible to add a test case to NotificationAppTest? Similar to the first half of testViewReplyNotification, with whenever(notificationSettings.shouldReadoutNotificationDetails()) doReturn false to confirm that the label is changed and that it invokes the ReadoutController when clicked.

did refactor according to your comments. Nice to have the speaker-icon in place. Going to adjust the unit-test

changes to Unit-tests are in.

ok, guess I'm done. All suggested changes and german translation are in.

Thank you so much!


adds support for fetch api

Safari is lacking the fetch API... whatwg-fetch is a complete polyfill.
Now Matterwiki works with Safari too (and probably some other older browsers)

fixes #26

Great, thanks for fix :smile:
Merging right now.


Please make sure packet package is installed with any new installation of 8.1.1

Error of job: node.packet.net!builder (install):
TRACEBACK********************************************************************************
Traceback (most recent call last):
File "/opt/jumpscale8//lib/JumpScale/core/processmanager/ProcessManagerFactory.py", line 198, in start
res = self.method(**self.args)
File "/tmp/actions/node.packet.net/install.py", line 6, in action
import packet
ImportError: No module named 'packet'

**** TRACEBACK ***
Traceback (most recent call last):
File "/usr/local/bin/ays", line 538, in
cli()
File "/usr/local/bin/ays", line 46, in run
run.execute()
File "/opt/jumpscale8/lib/JumpScale/baselib/jobcontroller/Run.py", line 267, in execute
raise j.exceptions.RuntimeError("Error during execution of step %d\n See stacktrace above to identify the issue" % step.dbobj.number)
JSExceptions.RuntimeError: ERROR: Error during execution of step 2

Fixed in https://github.com/Jumpscale/ays_jumpscale8/commit/f999ce9d9ed59b0d18024c54b8c79657347c21b4


Better GUI and file structure

I have Added GUI support for the Script and Also I have Recreated new and Better File Structure #7 .
GUi DEMO

Thanks a ton, @Mr-Sunglasses. Really impressed.
I will test this PR and merge it then :)

Sorry for my rusty git skills @Mr-Sunglasses. If you don't mind can you make another pull request for the same.
Please make pyobjc as an optional requirement.
pyobjc==7.x; sys_platform=='darwin'
Also, update the requirements.txt for tkinter.

@tushar5526 Sure I'll do the changes and make the PR again


Create Reversal_Algorithm

This is the code for reversal algorithm applied to the 1-D array. Here, we have to rotate the array to the right by k steps. It is the optimised solution for rotating the array.

Hi sir. I actually tried doing this for the very first time. Can you please brief me regarding merging of pull request and what does it mean?


Set up WebProxy with "msstd:<proxy_address>"

I can't see possibility to set up WebProxy with "msstd:<proxy_address>"
The configuration that i need is:
http://lh5.ggpht.com/-ov_atHI21yI/T-lz2Wyq7zI/AAAAAAAAP5I/5oJWyIJo7WQ/image_thumb%25255B5%25255D.png?imgmax=800

I resolvd my problem, mssstd is not obligatory to set up by the API.
  ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

// setup credentials - START
service.setUrl(new URI("https://<proxy_address>/ews/exchange.asmx"));
ExchangeCredentials credentials = new WebCredentials(user, password,"<mail_server>");
service.setCredentials(credentials);
// setup credentials - STOP
 ItemView view = new ItemView(1);
  FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.SentItems, view);
  System.out.println("udało sie" + findResults.getTotalCount());


Display city name on search results page

With the expansion into the rest of Cook County, the search results page should also include the city name between the address and zip code lines next to the tester's information.

This relates to #114

Added in commit https://github.com/smartchicago/kimball/commit/28e6ea19e87a98d6634d2334a5a8df220726bd22


Set up CI with Azure Pipelines

[skip ci]

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: gopikrishnait sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

test


Add JSDoc, Fix styling issues

Codecov Report

Merging #12 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #12   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          47     45    -2
=====================================
- Hits           47     45    -2

Impacted Files
Coverage Δ

src/index.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Normalize wallet address, toLowerCase() is undefined. Cannot define walletAddress

This happened only once. Possibly user state was wiped out on saving code so the last step did not get the user wallet address cause the error. Should not be an issue in production.

The issue stemmed from not awaiting a promise for updatedUser so the query set was a promise instead of the data, effectively making walletAddress undefined for later usage.


Parse game_comments and game_type into airdates table

Hey @baddox, thanks for the PR! I haven't had much time to sit down and merge this in, but I am hoping to get around to it this week. Would you mind adding a quick description of the changes and motivation behind them. Also, there are a few PEP8-related errors in the build, would you mind taking a look at those.

I added a few line notes -- with those and the notes from Travis addressed this will be good to merge!

I'm closing this due to inactivity, feel free to open a fresh PR.


refactor(location): Renamed Location service to Router

BREAKING CHANGE: Renamed Location service to Router and renamed replaceState method to replace
Before:
import { Location } from '@ngrx/router';

class App {
    constructor(location: Location) {
        location.replaceState('/path', { query: 1 });
    }
}

After:
import { Router } from '@ngrx/router';

class App {
    constructor(router: Router) {
        router.replace('/path', { query: 1 });
    }
}

LGTM


Can't set options - globalOptions is null

When setting options on config() it is giving error Cannot set property 'ignoreErrors' of undefined as the globalOptions are being set as undefined and not picking up the defaults
Version: 3.22.3

Can you provide the code that you use to trigger this error?

@pfrendo, I've got the same error in the next code:
npm i raven-js@raven-js

import {config} from 'raven-js';

config('test-dns', {}).install();

The solution here is to export the whole Raven module (in the first case config gets the wrong this) :
import * as Raven from 'raven-js';

Raven.config('test-dns', {}).install();

I did it but it depends on what module loader you're using. In my case I had to use via require not import

I'm using Typescript 2.7.2 and webpack 3.10.0

@pfrendo there's nothing that shouldn't work with require as well.
Keep in mind that named imports are meant to be used with side-effect free (aka idempotent) functions. In case of Raven, you always want to import a whole thing, as we're exporting one singleton object anyway.

@kamilogorek I started by importing * as Raven from 'raven-js' but nothing this wasn't instantiated


[Investigation] What work needs to be done to enable the CLI for Alpine Linux users?

Slack thread here: https://sentry.slack.com/archives/C04MDUBCPHU/p1690375518989429
Conversation excerpts:
"alpine doesn’t have all needed requirements for the CLI"
"My assumption is that downloading the missing requirements for getting the CLI to run will do the work"
What are the steps for a successful CLI run for an Alpine user?

We will need to create a new Github Action that uses Docker to create alpine containers that run the build process within them. We can also use this approach to create ARM64 binaries for the CLI, by creating containers that use the desired architecture using the Docker platformoption when running.


docs: fix netrc path

typo has bugged me for ages but I didn't feel like figuring out doom emacs again
finally setup vim-orgmode so I sort of have bindings now


does it work with chatgpt4.0?

does it work with chatgpt4.0?

yes

API v4 is not open yet?

During the gradual rollout of GPT-4, we’re prioritizing API access to developers that contribute exceptional model evaluations to OpenAI Evals to learn how we can improve the model for everyone. We are processing requests for the 8K and 32K engines at different rates based on capacity, so you may receive access to them at different times. Researchers studying the societal impact of AI or AI alignment issues can also apply for subsidized access via our Researcher Access Program.
Read more about GPT-4

During the gradual rollout of GPT-4, we’re prioritizing API access to developers that contribute exceptional model evaluations to OpenAI Evals to learn how we can improve the model for everyone. We are processing requests for the 8K and 32K engines at different rates based on capacity, so you may receive access to them at different times. Researchers studying the societal impact of AI or AI alignment issues can also apply for subsidized access via our Researcher Access Program.  https://openai.com/waitlist/gpt-4-api


Add encryption mode support

Fixes #12
Enables #1

AFAICS, the project won't compile in between the first and second commit. Commits should always compile (and pass tests). I think the first change should do this:

Extract interface.
Put AESCBC code into a module.
Update references so that the code builds.

@npmccallum pretty sure you are just asking me to squash the first two commits.  I purposefully did not do that because I wanted the git diffs to stay small.

Except that the cost of doing that is having a bisect that can't work. That's a very high price for a file rename commit (which is not necessary in git).


NPM not opening port when creating a new stream.

Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?

Yes

Are you sure you're not using someone else's docker image?

Yes

Have you searched for similar issues (both open and closed)?

Yes

Describe the bug
Title
Nginx Proxy Manager Version
latest
To Reproduce
Steps to reproduce the behavior:

Go to 'stream'
Click on 'add stream'
Add a new Stream
Check with a tool if the port is open

Expected behavior
That the port is open

Since NPM is a dockerized application, you will also need to expose that port in your docker-compose file, since npm is not able to do that. Then that port will also be accessible from the outside and should work as expected.

Ahhh okay I remembering now. Thank you I just used this a while ago.


MM-41294: Show team schemes with professional license.

Summary
Allowed team schemes to be administered with a Professional license.
Ticket Link
https://mattermost.atlassian.net/browse/MM-41294
Related Pull Requests

https://github.com/mattermost/mattermost-server/pull/21660

Release Note
Allowed team schemes to be administered with a Professional license.

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

@BenCookie95 @plant99 This is back to draft state. I realized I should confirm the intent with Laney prior to proceeding.

@BenCookie95 @plant99 We've gotten approval from @laneycs to move ahead with this so I've put it into Dev Review state.

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/266276

/cherry-pick cloud

Cherry pick is scheduled.


do you have pytorch version of code?

Hi Clemens,
Thanks for your code of CHIA. I am implementing a hierarchical classification algorithm, and very interest in CHIA. Since I am familiar with Torch, I am wondering whether you implemented a PyTorch version of CHIA or not. It would be great if you could share it if you have. Also, is your tensorflow 1.x or 2.x?
Thank you so much!
Best,
Changbin

Hi,
unfortunately there is no specific PyTorch implementation. Still, the framework is mostly independent of TF/Keras, so there are only a few places you would have to change to get it working with PyTorch.
Best
Clemens


Why asking consent for Me endpoint (internal_login scope) in a weird manner

Describe the issue:

How to reproduce:

subscribe to Me APIs from an application
create a new API resource and subscribe to the same application
Create an application role with permissions for both above APIs
Assign it to a user
Login to the application that request the above scopes

user with role in step 3 don't see the consent for internal login
user without role in step 3 see the consent for internal login

Expected behavior:
Consent is not explicitly required for the internal_login role.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

Expected behavior:
Consent is not explicitly required for the internal_login role.

We cannot remove asking consent for internal_login scope since it allows us to do some critical changes to the user profile such as password reset and Add/Remove 2FA options. Hence it would be better if we rename the display name of the scope to give a better meaning. I have attached an screenshot with a possible suitable name for this
Instead of

Still, the consent doesn't give a clear idea of the purpose.
Ideally, critical actions like password update should happen over additional permission levels.
At least for now rename the consent to something like
 - XXXX
          - View and make updates to your profile

This will be properly fixed when we provide the improvement suggested with https://github.com/wso2/product-is/issues/17904

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


[Serialization] Add pretty stacktraces to conformance serialization

This code path often reports internal inconsistencies in the compiler, so let's make the pretty stacktrace more useful when debugging. We probably want to make the assert on witness.getDecl() || ... a hard error too, but this would break existing projects at this time.

@swift-ci Please smoke test

@swift-ci smoke test


Multithreaded Use

Are there any particular issues using the asdf-cpp library in a multithreaded environment?  In particular, is it possible to:

Write to multiple files, each from their own thread, in the same process?
Write to a single file from multiple threads in the same process?

Thanks!

asdf-cpp is an incomplete prototype and is currently unmaintained.  I'm not aware of any issues with writing multiple files concurrently, but you'd need to test to be sure.  I suspect that writing to a single file from multiple threads is not a safe thing to do.


MWPW-161273 Standalone Gnav needs a release cycle [Bundle]

Fix for CSO issue caused by #3132  (Revert PR: #3319). See https://main--bacom-blog--adobecom.hlx.page/blog/?milolibs=bundled-standalone-gnav-fix
Other notes can be found in the description of #3132
Resolves: MWPW-163734

Test URLs:

Before: https://main--milo--adobecom.aem.page/?martech=off
After: https://bundled-standalone-gnav-fix--milo--adobecom.aem.page/?martech=off

Validated the changes on the pr, details are added in the ticket
https://jira.corp.adobe.com/browse/MWPW-163734
https://main--bacom-blog--adobecom.hlx.page/blog/?milolibs=bundled-standalone-gnav-fix

Navigation on the links

https://main--blog--adobecom.hlx.page/?milolibs=bundled-standalone-gnav-fix

https://main--blog--adobecom.hlx.page/jp/

https://main--cc--adobecom.hlx.page/creativecloud?milolibs=bundled-standalone-gnav-fix

redirection on the link is working

Validation is done on bacom/blog and blog and regression on cc, dc,home and bacom


Use Popup.js and Deprecate StyledDropdown.js

We have two different drop-down methods; using Popup.js which under the hood uses react-popper and using StyledDropdown.js component.
Starting https://github.com/opencollective/opencollective-frontend/pull/7854 it seems that Popper.js has all the accessibility fixes that are needed to be used everywhere. I am suggesting we deprecate StyledDropdown.js for the following reasons;

react-popper has better styling aspects compared to StyledDropdown.js in terms of positioning as well as the general feel of the popup. For example if we have an arrow on the popups with react-popper looks much better compared to StyledDropdown.js.

vs,

where note that the border of the arrow isn't visible and doesn't share the same border-color as the rest of the popup.

Make all drop-downs consistent throughout the site.

Also thinking further I believe we can use react-popper for StyledTooltip.js as well rather than trying to create our own tooltip. This also have the added benefits listed here; https://popper.js.org/docs/v2/
@Betree : WDYT? I'll open a separate issue for this if you are okay with this. My thinking is we can get rid of StyledTooltip.js as well and make all pop-ups in the site use react-popper. This in my mind will give a overall consistency to the site plus less code to maintain. 🤔

The real advantage of relying on react-popper and the main reason for deprecating StyledDropdown is positioning. Tooltip positioning is hard and this lib does the work for us. The (1) reason (has better styling aspects) does not really describes the issue, we could easily update the styles in StyledDropdown if we're not happy with them.

WDYT? I'll open a separate issue for this if you are okay with this. My thinking is we can get rid of StyledTooltip.js as well and make all pop-ups in the site use react-popper. This in my mind will give a overall consistency to the site plus less code to maintain. thinking

I don't understand, I thought that this issue was about deprecating StyledDropdown in favor of PopupMenu (which uses react-popper)? What's the goal of this issue if not to remove StyledTooltip?

Btw, I assume you mean PopupMenu when you refer to Popup.js?

Btw, I assume you mean PopupMenu when you refer to Popup.js?

Yes, sorry; I've edited it to PopupMenu.js

I don't understand, I thought that this issue was about deprecating StyledDropdown in favor of PopupMenu (which uses react-popper)? What's the goal of this issue if not to remove StyledTooltip?

Think I was confusing this actually. Don't think we need to remove StyledTooltip as it already uses react-popper.
https://github.com/opencollective/opencollective-frontend/blob/dec64a3870e06fd8c3a4a5346599f15ccf15d0f9/components/StyledTooltip.js#L121-L133
We just need to deprecate StyledDropdown.


Download and Install SDK.

Part 1 of SDK Manager (for latest and fixed version) :
Download
Extract
Install

@loosebazooka Can we close this now?


Postgres: no roles are backed up when SPLIT_DB is set

no roles backed up
Postgres:
when we use SPLIT_DB, the databases are backed up perfectly and could be restored.
BUT: the roles and their passwords are not backed up.
Suggestion: run a  pg_dumpall -r after all backups.

Sure, that makes sense to me. Are you able to try tiredofit/db-backup:develop to see if it does what you are after?
You should see an additional file following the syntax of pgsql_roles_(db_host)_(timestamp).sql.(yourcompressiontype) post backup.

this looks pretty good. The user info is there, the CREATE DATABASE not. My bad: I should have requested
pg_dumpall -g (same as --globals-only) instead.

No problem. I have a new :develop ready for a test.

Sure not a problem. I can add the -s easy enough.
I'm going to change the filenames and add a duplicate __ in front of the segment where the dbname is eg (pgsql__globals) and the schemas to avoid any conflicts. I'll add -s and push out a new release shortly.

a restore to another machine worked using psql. The restore script told me psql wouldn't be possible. When this fine stuff is made public on github (no devel branch there), I can dig a bit. There are some databases to be migrated to another machine...


#3879 non-OOM approach

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)


feat: add spi login page support

Description
This PR replaces passing k8s_token query parameter in SPI oauth login flow by the POST /login method provided by spi itself:

a new /login page is served by the spi-oauth-redirect-proxy which contains a simple html form to submit the token via POST; such page accepts the url query parameter, that allow us to dynamically define the action property of the html form and deal with our ephemeral e2e environments
upon submit, spi returns the sessions cookie needed to perform the normal oauth authentication flow

All the above steps are executed in a Cypress pod ( tests have already been updated here )
Issue ticket number and link
SVPI-672
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

How Has This Been Tested?
By running E2E_TEST_SUITE_LABEL=gh-oauth-flow make local/test/e2e  locally
Checklist:

[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/lgtm

/test all

/retest


Polycom Links are broken

Please ensure the product links are working, most polycom are broken.

@AndreaBarr I can tackle this issue.


Documentation issue.

I think descriptions for SPACESHIP_PROMPT_ADD_NEWLINE and SPACESHIP_PROMPT_SEPARATE_LINE in README are other way around.

Can you fix this and send pull request? I am a bit busy these days.


Logging handlers as they are added

Describe the feature
Log the handler type and path of a handler for each added handler and include this as part of enableDevLogging.
Additional context
I think this will be beneficial for developers that are near the beginning of writing their Javallin applications. Knowing that your handler is registered as expected is reassuring.
Furthermore, I was recently registering handlers in a more dynamic way, in which handlers where being discovered throughout the codebase rather than being explicitly registered via the Javalin class. Being able to see log lines showing that the handlers were registered correctly would have made my life easier.
Note, I believe this can also be done by using Javalin.events and listening for HandlerMetaInfo. However, including it as part of enableDevLogging is easier for developers to use when beginning their Javalin journeys.

Double checked this.

Thanks @lankydan, I think this is a good idea.

Note, I believe this can also be done by using Javalin.events and listening for HandlerMetaInfo. However, including it as part of enableDevLogging is easier for developers to use when beginning their Javalin journeys.

It would also be possible to make enableDevLogging attach an event listener?

We would need to either give JavalinConfig a reference to Javalin or move enableDevLogging and the other logging methods in JavalinConfig up to Javalin.
I don't mind do this, but I'm not sure either of the options above sound right.

Resolved by - https://github.com/tipsy/javalin/pull/1410


Update 0082-helium-mobile-service-provider.md

Changing a potentially incorrect phrasing. The incorrect phrasing introduces a contradiction to HIP 79:
HIP 79 says SPs aren't able to redistribute Mobile rewards to subscribers (for legal reasons)
The original phrasing here in HIP 82 can be easily read as "HM pays subscribers Mobile tokens that HM temporarily owned" - thus contradicting the statement in HIP 79 that SPs can't do that.
But what actually happens (in my understanding is): Having a subscription is a prerequisite to do discovery mapping and to get MOBILE rewards out of the mapper rewards bucket. Thus HM does not pay rewards, but being a subscriber of HM only enables discovery mapping and getting rewards for discovery mapping.
The suggested change to the HIP reflects this.

Looks good!


Error in enabling schema validation for API Product

Steps:
1.Create an API Product.
2. Go to Runtime Configurations -> Schema Validation
Enable and save.
Below error is printed in the carbon.log.
ERROR - GlobalThrowableMapper Unrecognized property 'enableSchemaValidation'
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "enableSchemaValidation" (class org.wso2.carbon.apimgt.rest.api.publisher.v1.dto.APIProductDTO),
we need to add enableSchemaValidation attribute in the swagger definition.

closed the issue as per above commit


[BUG] Tooltip get sometimes stuck

Hello guys, first of all thanks for the bug fix in 5.23.0
Bug description
When hovering, the tooltip might get stuck. Check out this video. The bug was introduced in 5.22.0 and 5.23.0 patch didn't catch it unfortunately. :( It seems that the bug was already there in 5.22.0.
https://github.com/ReactTooltip/react-tooltip/assets/6016732/0c33587a-713a-454c-aff5-54e0f898603c
Version of Package
v5.23.0
Expected behavior
Tooltips should disappear when not hovering

Have you taken a look at this? https://react-tooltip.com/docs/troubleshooting#the-tooltip-doesnt-close
Not sure what else might be causing this. Can you provide a CodeSandbox or similar reproducing it?

How can you possibly be so fast ? 😆 You fixed my issue, this was indeed an opacity issue.
For future readers, since I am using Tailwind, replacing className="!opacity-100" by opacity={1} made the trick.


Incorrect parsing of parentheses in DaCe programs

It looks like parentheses don't get parsed correctly.
import dace
import numpy as np

N, F_in, F_out =  2, 3, 4

@dace.program
def fn(a, b, c):
  c[:] = (a.T @ b).T

a = np.random.rand(N, F_in)
b = np.random.rand(N, F_out)
c_expected = np.zeros((F_out, F_in))
c = np.zeros((F_out, F_in))

fn.f(a, b, c_expected)
fn(a, b, c)
print(c)
print(c_expected)
assert np.allclose(c, c_expected)

Throws an error:
DaceSyntaxError: Use of undefined variable "(a"

@lamyiowce Thank you for reporting this! PR #1498 fixes the issue and adds an appropriate test.


Keywords AFTER is missing

https://mariadb.com/kb/en/alter-table/
Used in ALTER TABLE ... ADD [COLUMN] ... [FIRST | BEFORE] ...

Should be done together with #82 and #89, to keep ALTER TABLE changes in a single PR.


How to solve the model saturation?

Here is my training log.

This parameter rho=1.6e-3, and lambda_value = 0.1 that seems to depend on the training dataset and needs no modify. The left parameters need to be tuning is the learning rate and training epoch.
I try both of lr and training epoch, and it doesn't help significantly. Any suggestion on parameter tuning to ease the model saturation?
Thanks for your kindly reply.

Do you mean that the validation accuracy drops when we set the training iterations too large?
I think this is inevitable since the experiments are under an unsupervised setting. All we can do is selecting a best model during training according to the validation results, but such manner is actually cheating since we are supposed to have no idea about any labeling info on the target dataset. But, many papers are doing like this and I don't know why everyone in this field thinks it is okay. The same 'convention' also exists for other unsupervised domain adaptation tasks, such as segmentation. You can simply check some papers (even CVPR oral) that released their code and you will find that they are selecting the best model according to the validation.
The recent studies (papers) of unsupervised domain adaptation are useless to real practical problems, mainly due to their confusing settings (They claimed labelling is costly, but still using the labeled validation data). In fact, we (i.e., the group I am in at Horizon Robotics) do not study such unsupervised settings anymore.

I got your idea.
The problem or phenomenon you pointed out is prevalent in the unsupervised learning problem settings. Also, I don't realize this before and it does obviously violate the basic ML rule because of using the validation set during training.
Thanks for this kindly remind and reply.


segment-balancer - infinite cycle

Druid <IP_ADDRESS> seems to have an issue balancing segments.
We have two separate clusters setup, one with four nodes and a single tier and one with 3 nodes in a hot tier and 2 nodes in a cold tier. Both clusters do NOT have any data flowing into them and are also not dropping any segments. So without any data-movement and without any dropRules to come into effect, the segment-distribution should eventually converge to a steady-state but instead segments are continuously moved from one node to another and then back again.
I attached a coordinator log and also two "timeseries" of coordinator snapshots that show how the cluster oscilates between a perfectly balanced state and a slightly unbalanced one.
It seems to us that this behaviour might be a threshold issue, meaning that the balancer is too sensitive about segment-imbalances and advises re-distributions even when this would only lead to another imbalance according to its sensitivity. Might be that the sensitivity for triggering rebalancing also needs to take cluster size into account.

druid-segment-loading-cycle-issue-coordinator-logs.txt

This is a known day-1 issue

what is a "day-1 issue" ?

there has been some related work to add a steady state here - https://github.com/druid-io/druid/pull/2806

as a workaround, you can throttle the segment movement across nodes by setting maxSegmentsToMove to a very low value.

Thanks Nishant for your suggestion.
I looked at #2806 and read that people are concerned about the asymptotic complexity of the algorithm proposed there.
Looking at the metamarkets blog post about the new cost function, I liked how mathematical these guys were about defining the cost function, but I think it might be missing a piece.
In the context of machine learning, the common paradim is:
optimization objective = cost function + regularization term
Could it be that the current balancer is missing the regularization term?
Usually, the cost function complexity grows linearly with the problem size but the regularization term has a constant complexity as it penalizes the parameters used in the cost function and is therefore independent of the number of datapoints a cost function iterates over.
In the concrete case of the balancer the regularization term could quantify the cost of executing the segment movements to counterbalance the benefit of moving them which is modeled by the cost function.


C4599 warning with Ninja

MSVC generates the following warning if the Ninja generator is used:
warning C4599: '/I<relative_path>': command line argument number 1 does not match
   precompiled header

Fixed by 9f772d5bd4a49e4cfc9537cdb307bb8cb8b3fd2e.

Related CMake issue is issue #13894.


Reading accelerometer values

Hello,
I use the Murata PCB SCL3300 and an Arduino MKR WIFI 1010.
It seems to me that there is a problem with the values of the accelerometer.
Serial monitor with "Example3_BasicAccelerometerReading" program :
X Accelerometer: 0.01	Y Accelerometer: 5.44	Z Accelerometer: 0.99
The value of the y axis is false.
I think the problem is the variable type for acceleration datas.
The datasheet specifies that values are in complement format so you should declare signed int instead of unsigned int.
The modifications are to be made in :
struct of SCL3300data
the fonction double acceleration(int16_t ACC)
Thank you so much for this library which is of the greatest help !

You are quite correct.  I was also able to find some related changes that needed to be made.  Will update the library shortly.

code changes committed and merged


update pd and tidb dependencies

What problem does this PR solve?
This PR is the stage 3 of https://github.com/pingcap/tidb/issues/19306 , in order to upgrade the PD dependency of tidb related repo.

LGTM


Accessing colors globally

I'm starting a new project and my implementation looks fairly close to yours. I tried using css variables but I was not able to make those globally available (didn't spent much time on this though). Do you have a solution for this? Let's say you need to pass a color to some Stack.screen

@migcarva This is project using CSS variables in combination with Tailwind CSS and NativeWind. See global.css and tailwind.config.js for the implementation.

Thanks for replying @FlemingVincent
Maybe I was a bit misleading with my question. Let me rephrase it: How do you access colors outside of the realm of CSS, classes? For instance, let's say you have this:
<Stack
      screenOptions={{
        headerStyle: {
          backgroundColor: '#f4511e', // how do you specify a color here
        },
        headerTintColor: '#fff',
        headerTitleStyle: {
          fontWeight: 'bold',
        },
      }}
    />

@migcarva Ah, yes, sorry I misunderstood your question. I went ahead and created and merged a PR for this. You can take a look at #17 which "Added ability to access colors globally. Updated expo-router."
Essentially, I created a constants file inside of the lib directory which contains a theme object consisting of light and dark mode colors that reflect the colors used in global.css and tailwind.config.js.


[#6] Setup user service project

Changelog:

Setup user service project in Typescript with jest testing
Setup basic server initialisation
Added ESLint, Pretter and Husky hooks to the whole repository

This repository can be used as a base for other backend services such as question service.

Looks good to me!

wait @Daviancold did you mean to merge it or close it?


Adjusting tests to julia.

Closes #1 as far as I can tell: I adjusted the tests in

test_parallel.py and
test_parametrize.py.

Now, the run through.
I also adjusted the ReadMe.

I think this should be fine, however, I couldn't figure out (so far) how exactly julia treats wrong cmd line arguments.

I understand this is a free service, but are those i386 machines? :laughing:

@hmgaudecker If one test occasionally fails I have no problem with that. Same in the other repos but it is really not that likely.

@tobiasraabe, what do you think about implementing passing of options via json, see above.
Also, we may want to check that command line options recognized by Julia are parsed correctly. Something like pass number of threads and check within Julia that the number is correct? Once with 1, once with 4?

@hmgaudecker Just for consistency and finishing stuff, I would advocate for merging this PR first to align with the other plugins. We will release it as v0.1.0.
After that, and with a potential v0.2.0 release the interface can be reworked. I am nor sure I understand how you want to use the json. Do you want to be able to define tasks from json files?

@hildebrandecon Please, follow the link of the failing the pre-commit ci step and see whether you can fix the errors to make the pipeline pass.

I managed to resolve some issues. I'm not sure how to fix/treat the remaining ones, unfortunately.

Just fix by ignoring (although I left that explicitly out from the course :smile:)

Also, we may want to check that command line options recognized by Julia are parsed correctly. Something like pass number of threads and check within Julia that the number is correct? Once with 1, once with 4?

@hildebrandecon @mbrambeer Could you draft a test for this? That is, pass explicitly to Julia that it should use only 1 thread at most, then check inside Julia that this is caught correctly. Repeat with 4. Test should include depends_on/produces because the order mattered in our experiments yesterday.
I think this is more important than checking what happens with wrong options. Not really pytask's Job to check whether the user typed stuff correctly (it would be nice, of course, but could also become a maintenance burden).

Sounds great.
No, I would just want to use it to pass the dependencies and targets (and other options) in a way that resembles Python tasks. Right now, you can only pass arguments by order (=2 lists and on Julia/R side impossible to discriminate between deps/targets without knowing the mapping of list elements to files). Very error prone.

Yes, makes sense. To be more bold, you could pass the json data via the command line as an argument and parsing the string inside the program to get rid of the file.

In principle yes, but the nice thing about the file (also relative to command line options) is that it makes it easy to run Julia/R from editors/IDEs/any way other than pytask.

Just fix by ignoring (although I left that explicitly out from the course 😄)

Also, we may want to check that command line options recognized by Julia are parsed correctly. Something like pass number of threads and check within Julia that the number is correct? Once with 1, once with 4?

@hildebrandecon @mbrambeer Could you draft a test for this? That is, pass explicitly to Julia that it should use only 1 thread at most, then check inside Julia that this is caught correctly. Repeat with 4. Test should include depends_on/produces because the order mattered in our experiments yesterday.
I think this is more important than checking what happens with wrong options. Not really pytask's Job to check whether the user typed stuff correctly (it would be nice, of course, but could also become a maintenance burden).

@hmgaudecker I must say that I don't understand what exactly you have in mind, probably because I'm not as an IT expert. However, here would be my rough idea what you would want to do:

we can tell julia how many threads to use via julia -t nthreads, where nthreads is the number of threads.
then, we can check within julia that all went well with Threads.nthreads() which should evaluate to nthreads.
apart from that, I'm not sure how to continue, I think because I don't have a clear idea how I can check the 2nd step within pytask.

Just add something to the script which makes it fail if nthreads does not have the desired number. In Python you would use the assert statement or raising an exception. Both make the script fail with nonzero exit codes which pytask will detect and mark the task as failed.

Yip, that's precisely what I had in mind!

Ok, I wrote a draft but in fact, it doesn't work. The test should fail since in line 141 we pass 4 threads. If I run the same stuff in the cmd line, it in fact works.
Replication:

create a file script.jl that contains write("out.txt", "So, so you think you can tell heaven from hell?") \n @assert Threads.nthreads() == 1
in cmd line, run julia -t 1 script.jl: works
in cmd line, run julia -t 4 script.jl: gives error
note: if we run julia script.jl -t 4, we don't get an error (this is the order-sensitivity that we expected...)

It seems that one has to pass arguments regarding Julia startup before the script but arguments used in the function itself after the script, replication:
script.jl contains:
for arg in ARGS
    println(arg)
end
@assert Threads.nthreads() == 1

In the shell, run: julia --threads 1 script.jl "hello1" "hello2" "hello3" without error but julia --threads 4 script.jl "hello1" "hello2" "hello3" with error. Putting --threads 1 at the end yields that it is printed too.

Thanks! I would hope writing the test is enough, @tobiasraabe has too much of an advantage of fixing the call from pytask for us to worry much about it :wink:
However, can you parametrize the test with both 1 and 4 threads? I think it defaults to 4 on a machine with 4 cores (I might misremember) so that would be just to avoid random passes based on the machine type.

I don't really have a good idea. I feel like this forces us to replicate the command line interface and understand whether options are flags, accept and input, accept multiple inputs and what are arguments to the script, split them and place them to the left or right of the script.
One approach to circumvent the replication would be to ask users to add -- when they are adding flags/options and arguments to the script in the decorator as a separator. For example, @pytask.mark.julia(("--threads", "1", "--", "0")). -- is also a valid separator on the command line to do that. Then we could split arguments at the double-dash, add the script just before the separator and recreate the command line string again.

Ah, sorry, I thought you had some sense or order in there. My understanding is that all you'd need to do is to swap the contents of mark.julia(...) with whatever is in depends_on / produces? "Options first" seems a good enough understanding for how Julia parses the command line, it seems to me...

Unfortunately, it is not enough to match the content of the decorator with depends_on and produces since you could also pass something like seeds to the script. And those other values could be related to a preceding command line option or not. I don't want to resolve something like this
--threads 1  # belongs together.
--verbose 1  # does not belong together and 1 should be passed to the script.

Ok, plan for the implementation.

A decorator with no content will default to subprocess.run(("julia", "--", "script.jl")).
If content is provided, I would suggest that the double dash is required and we raise an error with a helpful error message if not. I think it will avoid confusion which justifies entering -- from time to time.

Everyone agrees?

Okay, talking past each other here.
As per our JSON discussion, I agree that pytask should not worry about resolving stuff.
I would say the pytask.mark("...") content is exclusively reserved for options passed to Julia as opposed to the script. pytask just needs to ensure this ends up before script.jl in subprocess.run(("julia", "--", "script.jl")), contrary to what is currently happening.
Anything else will be solved by different means in a different PR.

contrary to what is currently happening.

That is, what is happening based on my assumption  @hildebrandecon posted above, I did not check in detail.

Okay, talking past each other here.
As per our JSON discussion, I agree that pytask should not worry about resolving stuff.
I would say the pytask.mark("...") content is exclusively reserved for options passed to Julia as opposed to the script. pytask just needs to ensure this ends up before script.jl in subprocess.run(("julia", "--", "script.jl")), contrary to what is currently happening.
Anything else will be solved by different means in a different PR.

This would mean that v0.1.0 does not support all functionality. It does not allow users to pass any arguments to script as it is possible with the other plugins. We could pass depends on and produces by default to the script and the user can optionally parse them or not. But, something like passing a seed to a script would not work.
I see the json approach as an alternative interface and a way to move forward, but I would prefer something fully working before that.

Fair enough, I cannot delve deeply enough into it. So your view is to not pass any options to Julia, just to scripts?

I think I cannot follow the discussion entirely, given that I don't understand most of the pytask details. Hence, I'm also not sure whether I can give any educated opinion about what best/not to do. Of course, let me know if I can be of help!

I am sorry. I feel like I have not expressed myself clearly enough and caused some unnecessary confusion. Let me try it once more.
The decorator @pytask.mark.julia or @pytask.mark.r are used to pass options (like --threads) to the executable and arguments (like a seed or paths from dependencies or products) to the script.
@pytask.mark.r(("input.md", "1", "--verbose"))
@pytask.mark.depends_on(["script.R", "input.md"])
@pytask.mark.produces("out.md")
def task_write_number_with_r_to_file():
    pass

This way, although highly ugly, the R scripts receives the path to the markdown file and a number which can be written to the output file.
We also pass the --verbose flag which is just representative of any option which can be passed to Rscript.
The main point here is that pytask-r can just take the tuple in the decorator and pass it on the command line to Rscript like
$ Rscript script.R input.md 1 --verbose

With julia this is not possible since a flag like --verbose or --threads need to be put on the command line after the executable julia and before the script.
This means pytask-julia needs to know whether something is an option for the executable or input to the script.
As a super lightweight workaround and ugly hack, I propose to require users, if they use the @pytask.mark.julia decorator, to separate options to the executable and inputs to the script via --. Taking the example from above, this would look like this:
@pytask.mark.julia(("--verbose", "--", "input.md", "1"))
@pytask.mark.depends_on(["script.jl", "input.md"])
@pytask.mark.produces("out.md")
def task_write_number_with_julia_to_file():
    pass

This way pytask-julia knows how to build the input to subprocess.run. Put everything before -- right after the executable and before adding the path to the script taking from the first dependency. Then, add everything to the right side of --.
$ julia --verbose -- script.jl input.md 1

I now also want to make it mandatory to always specify -- if the user passes any values to @pytask.mark.julia so that it is always clear whether input refers to the executable or script. Two examples
@pytask.mark.julia(("--", "input.md"))  # to pass a path to the script

@pytask.mark.julia(("--threads", "4", "--"))  # to enable 4 threads while running the program.

The reason why I believe -- should be mandatory is that it is not clear looking at the two cases above whether one case could omit the -- because it would feel more natural to pass something to the executable or to the script.
I know this is an extremely dirty hack and I am deeply unsatisfied with the situation. It is not an excuse to say waf was equally bad. We need to circumvent the positional indexing and get something label-based soon. But, in this PR, I just want to make pytask-julia as powerful as the other plugins so we have a common base to start from.

thanks @tobiasraabe for the extensive explanation, I think your arguments make perfect sense!

Sounds great, thanks for the detailed explanation.
I think my view is to just not spend too much time on this right now. There will be few users and even less power users for the moment.
Looking back at Waf and the current state of pytask-{R, Stata, Julia), I do think that requiring command-line options is a major inhibitor for take-up. For the typical (student) data cruncher, the most important feature is that starting from an IDE is seamless and the same as starting from pytask. But that's for another discussion!

@hildebrandecon @hmgaudecker Hi, I implemented the described approach. The tests checking the number of threads inside the script works as well.
Please review the readme and test whether the package works for you.

@tobiasraabe tests run smoothly on my machine & I think the readme is in line with all changes.

I extended the cmd line option test as @hmgaudecker has proposed. I tried to do it with parametrize at first but I'm not sure whether one can check the session code separately then.


Using with next-auth: does serverSideTranslations() break useSession()?

Describe the bug
Using with next-auth.js:
When logged in, if I click on a route with serverSideTranslations, the user appears signed out.
Refreshing the page fixes the issue (no need to actually click "Sign in" again).
Occurs in next-i18next version
^10.2.0
  "dependencies": {
    "next": "^12.0.11-canary.4",
    "next-auth": "^4.2.1",
    "next-i18next": "^10.2.0",
    "nodemailer": "^6.6.3",
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  },
  "devDependencies": {
    "@types/node": "^17.0.14",
    "@types/react": "^17.0.39",
    "typescript": "^4.5.5"
  },

Steps to reproduce

Clone https://github.com/markitics/next-auth-with-i18n
Add NEXTAUTH_SECRET,  GITHUB_ID and GITHUB_SECRET in .env.local
Log in; notice "Signed in as…" banner appear in header.tsx.
Navigate to one of the "Translation" routes marked /en or /de (that's route /en/with-await or /de/with-await.
Note "Signed in as…" status has disappared. "Sign in" button available as user now appears logged out.
Refresh the page to bring back the "Signed in as… " header (no need to actually click "Sign in" again).

Expected behaviour
Clicking links such as /en or /de should not affect the "signed in" status of the user.

Screenshots
Actual behaviour:
When I click on /en or /de links, the "Signed in as…" status changes to appear that the user is signed out.

https://user-images.githubusercontent.com/855207/153428779-e4c05e17-d0a5-4c8b-b425-aee5ff18261d.mov
OS (please complete the following information)

Device: MBP 2020 (M1)
Browser: Brave [Version 1.33.106 Chromium: 96.0.4664.110 (Official Build) (arm64)]

Additional context

Code example:
https://github.com/markitics/next-auth-with-i18n
If you clone that repo and add a GITHUB_ID, GITHUB_SECRET and NEXTAUTH_SECRET, you should be able to have log in with GitHub.

This code example (using next-auth v4) was motivated by a similar problem I had trying to add next-i18next to a current (production) project that uses next-auth v3. StackOverflow question, unsolved.

You need to pass the session to every page, I implemented wrapper like this:
export const withSession = (gssp) => {
  return async (context) => {
    const session = await getSession({ req: context.req });
    let headers = null;
    if (session?.accessToken) {
      headers = {
        headers: {
          Authorization: `Bearer ${session.accessToken}`,
        },
      };
    }

    return gssp(context, headers, session);
  };
};

then you can use it like this:
export const getServerSideProps = withSession(
  async (context, headers, session) => {
   ...
    return {
      props: {
        session,
        ...(await serverSideTranslations(context.locale, ['common'])),
      },
    };
  },
);

@markitics https://github.com/isaachinman/next-i18next/pull/1631 is now merged and released. Can you let me know if this issue remains?

@isaachinman @JonahLund yooo thank you so much, you absolute legends! YES, I can confirm that #1631 fixed it for me. I'm now using next-i18next v^10.3.0, and on every page I have either getServerSideProps or getStaticProps with
return {
    props: {
      ...(await serverSideTranslations(locale, ["common", "optional_other_translation_files"])),
    },
  };

Everything's working great… thank you, heroes!
https://twitter.com/awesoundapp/status/1493745687241969668
Thanks to your fix, I did NOT need to write my own withSession wrapper as proposed by @gstrobl (thanks for that suggestion, though!)

@markitics Hmm I have just cloned your repo and the issue seems to persist. Can you confirm that #1631 solved the in your test repo?

@isaachinman I seems like the issue is still there.... Should I create a new issue?


KubeSphere App Store

Research the tools provided below and document them in an explanatory manner.

RabbitMQ
Memcached
Redis Exporter
vsphere-csi-driver
antrea
curvefs-csi
openelb

https://gist.github.com/baburakbas/e93cbd18b4a7cc8f31980efac31d9160
Here is my review of the requested tools


Always syncing CSS changes in the Styles pane

In the styles tab in the elements tool, changes I make to the CSS are synced and saving to file even though I have made sure the Sync CSS changes in the Styles pane experimental feature flag is disabled. The documentation  for this provides no information but I assume it means whether or not these changes get saved to disk.
I do not want to sync my CSS changes as I build them with a .LESS file, and having the .CSS and .LESS not the same can lead to confusion. Even without the .LESS files, I doubt I'd want the feature enabled, as I really just use the styles tab for experimenting with what looks good before I 'commit' to my codebase
This behaviour of syncing to disk is also present for any file I edit in the sources tab (.js files for example) which I probably would disable too given the choice, but I'm never really editing source files from within Devtools.
I have linked my working directory to Devtools.
Version 123.0.2420.97 (Official build) (64-bit)
Thank you
AB#50931662

Are you using DevTools from within VSCode, by using our Edge DevTools VSCode extension? If so, then you might need to disable "CSS mirroring" as explained here: https://learn.microsoft.com/en-gb/microsoft-edge/visual-studio-code/microsoft-edge-devtools-extension/css-mirror-editing-styles-tab

I was not using edge from inside VSCode, but I did have the extension installed. I've since uninstalled it and rebooted VSCode and Edge but my all my changes (.CSS and everything else) are all still syncing.

For now I'm just going to unlink my workspace, as the only reason I want them linked is to be able to open my files in VSCode through the Devtools console or elements tab etc. But since that isn't working for me right now, I'll just unlink.

I do not have VSCode installed at all -  I'm having this issue.
"Sync CSS changes in the Styles pane" is unchecked.
If I remove the folder from the "Workspace", changes made to the file directly in another application (Visual Studio, Notepad++, etc) are not synced at all, meaning I have to refresh the page for every change made - which is not what I want.
Previously, there was a setting that allowed changes made outside the browser to be applied as soon as the file was saved, but kept changes made in DevTools from being written to file. I'm not sure if that's the "Sync CSS changes in the Styles pane" and it is broken, or if there's another setting somewhere else that isn't intuitively named.

Sorry about the delay here. I've marked this as tracked for our dev team to triage/prioritize it on their backlog.


Add MrSlimCoder

Resolve #607

Team, test is still failed can you please verify it' related to linting issue @schmelto @Panquesito7

Team, test is still failed can you please verify it' related to linting issue @schmelto @Panquesito7

I check the action issue later


Can't Connect to NeoForge Server

I can't seem to connect to my NeoForge server while running this mod. It gives the "Incompatible Client" error screen, and lists 5 Channel names - asteorbar:tough_as_nails, asteorbar:entity_absorption, asteorbar:saturation, asteorbar:exhaustion, asteorbar:activate
Each channel has the description "This channel is missing on the server side, but required on the client!"
Adding this mod to the server instead gives an internal server error, I'll include the latest log:
latest.log
Let me know if I screwed up somewhere.

Thanks for your detailed information.
This mod was not designed for mod server at first, and then the error was caused, I will try to fix it.

asteorbar-neoforge-1.20.4-1.4.3.zip
here's a simple fix, please try with this file, don't forget to uncompress the zip file.

asteorbar-neoforge-1.20.4-1.4.3.zip here's a simple fix, please try with this file, don't forget to uncompress the zip file.

This seems to work, thanks!


Don't report lenient resolution failures to Problems API

Potential fix for #30442

@bot-gradle test QFL

I've triggered the following builds for you. Click here to see all build failures.

Quick Feedback - Linux Only (Trigger) (Check)

@bot-gradle test QFL

I've triggered the following builds for you. Click here to see all build failures.

Quick Feedback - Linux Only (Trigger) (Check)

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)