Insert user-provided CFLAGS at the end of the command line

I'm trying to build libsqlite3-sys, which uses cc-rs on Windows, and I am running into a gcc internal compiler error. Since it happens in the DWARF area of the compiler, I would like to switch off the debug info generation. In order to do that, I set CFLAGS=-g0, however, this results in the following command line:
running: "gcc.exe" "-O3" "-ffunction-sections" "-fdata-sections" "-g0" "-g" "-fno-omit-frame-pointer" "-m64" "-DSQLITE_CORE" "-DSQLITE_DEFAULT_FOREIGN_KEYS=1" "-DSQLITE_ENABLE_API_ARMOR" "-DSQLITE_ENABLE_COLUMN_METADATA" "-DSQLITE_ENABLE_DBSTAT_VTAB" "-DSQLITE_ENABLE_FTS3" "-DSQLITE_ENABLE_FTS3_PARENTHESIS" "-DSQLITE_ENABLE_FTS5" "-DSQLITE_ENABLE_JSON1" "-DSQLITE_ENABLE_LOAD_EXTENSION=1" "-DSQLITE_ENABLE_MEMORY_MANAGEMENT" "-DSQLITE_ENABLE_RTREE" "-DSQLITE_ENABLE_STAT2" "-DSQLITE_ENABLE_STAT4" "-DSQLITE_HAVE_ISNAN" "-DSQLITE_SOUNDEX" "-DSQLITE_THREADSAFE=1" "-DSQLITE_USE_URI" "-DHAVE_USLEEP=1" "-o" "<redacted>/sqlite3.o" "-c" "sqlite3/sqlite3.c"

Note that my -g0 comes before the automatically inserted -g - this leads to it being completely ignored. To me, one of the points of having CFLAGS is to be able to insert overrides like this one. Would it be possible to insert user-provided CFLAGS at the end of the command line?

This should be fixed in version 1.0.30 - libsqlite3-sys should pull this version in automatically.

Closing since this should be fixed!


Mapping range selector crashing as per Leigh's email

Import the NetCDF file at cisl-vapor/data/temp/issue1949
Create a 3D renderer
Set the variable to qvpert
Set the lower bounds to 0 using the mapping range selector text box

Vapor will crash

Update: Sam tested on cisl-vapor and Casper without reproducing the crash.
This particular data is available on glade:
/glade/work/shaomeng/VAPOR3.2-tmp/morgan1-top.03600.000000.nc
and little_glade:
/little_glade/data/LeighOrf_tricky/morgan1-top.03600.000000.nc

Given that this is happening inside of Qt (see Leigh's stack trace below) let's revisit - and have @leighorf retest - after Qt5 port is merged.
Here's from gdb if that helps:
(gdb) where
#0  0x00007ffff12cf337 in raise () from /lib64/libc.so.6
#1  0x00007ffff12d0a28 in abort () from /lib64/libc.so.6
#2  0x00007ffff1311e87 in __libc_message () from /lib64/libc.so.6
#3  0x00007ffff131a679 in _int_free () from /lib64/libc.so.6
#4  0x00007ffff6412d40 in ?? () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#5  0x00007ffff64109b9 in QMetaObject::changeGuard(QObject**, QObject*) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#6  0x00007ffff5b2ca31 in ?? () from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#7  0x00007ffff5b2d190 in QButtonGroup::removeButton(QAbstractButton*) () from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#8  0x00000000005a0879 in FidelityWidget::Update(VAPoR::DataMgr const*, VAPoR::ParamsMgr*, VAPoR::RenderParams*) ()
#9  0x000000000051ed9e in VariablesWidget::Update(VAPoR::DataMgr const*, VAPoR::ParamsMgr*, VAPoR::RenderParams*) ()
#10 0x00000000005b496a in VolumeEventRouter::_updateTab() ()
#11 0x0000000000480275 in EventRouter::updateTab() ()
#12 0x0000000000570108 in TabManager::_updateRouters() ()
#13 0x000000000054af0c in MainForm::eventFilter(QObject*, QEvent*) ()
#14 0x00007ffff63fa022 in QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*, QEvent*) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#15 0x00007ffff5785be8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#16 0x00007ffff578c1da in QApplication::notify(QObject*, QEvent*) () from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#17 0x00007ffff63f9f4d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#18 0x00007ffff63fcffd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#19 0x00007ffff6425f33 in ?? () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#20 0x00007ffff078d099 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#21 0x00007ffff078d3f8 in g_main_context_iterate.isra.19 () from /lib64/libglib-2.0.so.0
#22 0x00007ffff078d4ac in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#23 0x00007ffff64257f5 in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#24 0x00007ffff5821716 in ?? () from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#25 0x00007ffff63f8b8f in QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#26 0x00007ffff63f8e85 in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#27 0x00007ffff63fde29 in QCoreApplication::exec() () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#28 0x000000000047e01c in main ()
(gdb)
On Tue, Nov 26, 2019 at 1:59 PM Leigh Orf<EMAIL_ADDRESS>wrote:
I can reproduce the bug with the build you jsut sent me - lucky me!
I've attached the crash dump trace. Seems there is a different error.
Some info on my setup:
[lorf@orf ~]$ uname -a
Linux orf.ssec.wisc.edu 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[lorf@orf ~]$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[lorf@orf ~]$ nvidia-smi
Tue Nov 26 13:51:48 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.31       Driver Version: 440.31       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN RTX           Off  | 00000000:03:00.0  On |                  N/A |
| 40%   51C    P5    53W / 280W |   6269MiB / 24219MiB |     19%      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      2571      G   vapor                                       4213MiB |
|    0      5991      G   /usr/bin/X                                  1240MiB |
|    0      7304      G   cinnamon                                     453MiB |
|    0      9306      G   ...s=KAAAAAAAAAAgAAAgAAAAAAAAYAAAAAAAEAAAA   357MiB |
+-------------------------------------

FYI, I am at home today and I could not reproduce the bug on my CentOS
machine with ATI card. So the only machine it crashes on is the one I use
the most, hooray!
I can get around triggering the bug by using the slider first - then I can
enter whatever value I want.
Leigh
On Wed, Nov 27, 2019 at 1:10 PM clyne<EMAIL_ADDRESS>wrote:

Given that this is happening inside of Qt (see Leigh's stack trace below)
let's revisit - and have @leighorf https://github.com/leighorf retest -
after Qt5 port is merged.
Here's from gdb if that helps:
(gdb) where
#0 0x00007ffff12cf337 in raise () from /lib64/libc.so.6
#1 https://github.com/NCAR/VAPOR/issues/1 0x00007ffff12d0a28 in abort
() from /lib64/libc.so.6
#2 https://github.com/NCAR/VAPOR/issues/2 0x00007ffff1311e87 in
__libc_message () from /lib64/libc.so.6
#3 https://github.com/NCAR/VAPOR/issues/3 0x00007ffff131a679 in
_int_free () from /lib64/libc.so.6
#4 https://github.com/NCAR/VAPOR/issues/4 0x00007ffff6412d40 in ?? ()
from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#5 https://github.com/NCAR/VAPOR/issues/5 0x00007ffff64109b9 in
QMetaObject::changeGuard(QObject**, QObject*) () from
/home/lorf/vapor-bleeding/lib/libQtCore.so.4
#6 https://github.com/NCAR/VAPOR/issues/6 0x00007ffff5b2ca31 in ?? ()
from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#7 https://github.com/NCAR/VAPOR/issues/7 0x00007ffff5b2d190 in
QButtonGroup::removeButton(QAbstractButton*) () from
/home/lorf/vapor-bleeding/lib/libQtGui.so.4
#8 https://github.com/NCAR/VAPOR/issues/8 0x00000000005a0879 in
FidelityWidget::Update(VAPoR::DataMgr const*, VAPoR::ParamsMgr*,
VAPoR::RenderParams*) ()
#9 https://github.com/NCAR/VAPOR/issues/9 0x000000000051ed9e in
VariablesWidget::Update(VAPoR::DataMgr const*, VAPoR::ParamsMgr*,
VAPoR::RenderParams*) ()
#10 https://github.com/NCAR/VAPOR/issues/10 0x00000000005b496a in
VolumeEventRouter::_updateTab() ()
#11 https://github.com/NCAR/VAPOR/issues/11 0x0000000000480275 in
EventRouter::updateTab() ()
#12 https://github.com/NCAR/VAPOR/issues/12 0x0000000000570108 in
TabManager::_updateRouters() ()
#13 https://github.com/NCAR/VAPOR/issues/13 0x000000000054af0c in
MainForm::eventFilter(QObject*, QEvent*) ()
#14 https://github.com/NCAR/VAPOR/issues/14 0x00007ffff63fa022 in
QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*,
QEvent*) () from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#15 https://github.com/NCAR/VAPOR/issues/15 0x00007ffff5785be8 in
QApplicationPrivate::notify_helper(QObject*, QEvent*) () from
/home/lorf/vapor-bleeding/lib/libQtGui.so.4
#16 https://github.com/NCAR/VAPOR/issues/16 0x00007ffff578c1da in
QApplication::notify(QObject*, QEvent*) () from
/home/lorf/vapor-bleeding/lib/libQtGui.so.4
#17 https://github.com/NCAR/VAPOR/issues/17 0x00007ffff63f9f4d in
QCoreApplication::notifyInternal(QObject*, QEvent*) () from
/home/lorf/vapor-bleeding/lib/libQtCore.so.4
#18 https://github.com/NCAR/VAPOR/issues/18 0x00007ffff63fcffd in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#19 https://github.com/NCAR/VAPOR/issues/19 0x00007ffff6425f33 in ?? ()
from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#20 https://github.com/NCAR/VAPOR/issues/20 0x00007ffff078d099 in
g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#21 https://github.com/NCAR/VAPOR/issues/21 0x00007ffff078d3f8 in
g_main_context_iterate.isra.19 () from /lib64/libglib-2.0.so.0
#22 https://github.com/NCAR/VAPOR/issues/22 0x00007ffff078d4ac in
g_main_context_iteration () from /lib64/libglib-2.0.so.0
#23 https://github.com/NCAR/VAPOR/issues/23 0x00007ffff64257f5 in
QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) ()
from /home/lorf/vapor-bleeding/lib/libQtCore.so.4
#24 https://github.com/NCAR/VAPOR/issues/24 0x00007ffff5821716 in ?? ()
from /home/lorf/vapor-bleeding/lib/libQtGui.so.4
#25 https://github.com/NCAR/VAPOR/issues/25 0x00007ffff63f8b8f in
QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from
/home/lorf/vapor-bleeding/lib/libQtCore.so.4
#26 https://github.com/NCAR/VAPOR/issues/26 0x00007ffff63f8e85 in
QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from
/home/lorf/vapor-bleeding/lib/libQtCore.so.4
#27 https://github.com/NCAR/VAPOR/issues/27 0x00007ffff63fde29 in
QCoreApplication::exec() () from
/home/lorf/vapor-bleeding/lib/libQtCore.so.4
#28 https://github.com/NCAR/VAPOR/issues/28 0x000000000047e01c in main
()
(gdb)
On Tue, Nov 26, 2019 at 1:59 PM Leigh Orf<EMAIL_ADDRESS>wrote:
I can reproduce the bug with the build you jsut sent me - lucky me!
I've attached the crash dump trace. Seems there is a different error.
Some info on my setup:
[lorf@orf ~]$ uname -a
Linux orf.ssec.wisc.edu 3.10.0-1062.4.1.el7.x86_64 #1
https://github.com/NCAR/VAPOR/issues/1 SMP Fri Oct 18 17:15:30 UTC 2019
x86_64 x86_64 x86_64 GNU/Linux
[lorf@orf ~]$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[lorf@orf ~]$ nvidia-smi
Tue Nov 26 13:51:48 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.31 Driver Version: 440.31 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 TITAN RTX Off | 00000000:03:00.0 On | N/A |
| 40% 51C P5 53W / 280W | 6269MiB / 24219MiB | 19% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2571 G vapor 4213MiB |
| 0 5991 G /usr/bin/X 1240MiB |
| 0 7304 G cinnamon 453MiB |
| 0 9306 G ...s=KAAAAAAAAAAgAAAgAAAAAAAAYAAAAAAAEAAAA 357MiB |
+-------------------------------------
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NCAR/VAPOR/issues/1949?email_source=notifications&email_token=ABAVIYBC56HPFFCXRL55XRTQV3A3ZA5CNFSM4JR4LJRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFKPP7I#issuecomment-559216637,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABAVIYBFEKCKENANGZSYOSTQV3A3ZANCNFSM4JR4LJRA
.


Supporting Multiple Color Schemes

G'day folks!
Congratulations on an absolutely brilliant library! I've been curious for a while about how easy building a third party theming system that integrates with UIKit would be, and it looks like this is the most elegant way out there.
One extra thing I was curious about was the concept of being able to have multiple color themes on top of light mode and dark. For example, Twitter for iOS offers both a dark blue, and a pure black theme, offering the user more choices for customisability, and apps like Tweetbot and Apollo for Reddit support upwards of 5 or 6 completely different color schemes.
I noticed there was an issue for making the color API more flexible at one point. Is that sort of functionality something you're interested in adding?
If it isn't, is it something you'd be interested in receiving a PR for?

Hi @TimOliver , thanks for bringing this out. I've reopened that issue. This is a great feature we'd like to add .That's probably a promising direction that we should go in.

Hi @icodesign! Fantastic! Thanks so much for that! :D
If there's anything I can do to help, please let me know. :)

Hi @TimOliver ,
As our project will be dropping iOS 12 support soon, we also added a bridge for iOS 13 native API support in FluentDarkModeKit. We've decided not to support multiple color schemes for a better native API compatibility until iOS provides multiple color support in the future. So if you're interested in this feature request, I'd suggest you could fork and create your own. It should be pretty straightforward if you use the previous iOS 12 approach.

Hi @icodesign!
Ahh fair enough. That seems like the right direction to head in. No problems! I'll consider what to do from this point onwards.
Thanks for the heads-up! All the best of luck!


feat: change baseHref for Numaflow UI. Fixes #375.

PR still being drafted

Allow user to change the Numaflow UI access path by updating the baseHref.

@dpadhiar - does it have to be a .env file for node application to read ENV variables? From https://www.cloudytuts.com/tutorials/kubernetes/how-to-configure-node-based-apps-in-kubernetes/, it looks like direct ENV configuration should work, if that's the case, we don't need an init container.

@dpadhiar - does it have to be a .env file for node application to read ENV variables? From https://www.cloudytuts.com/tutorials/kubernetes/how-to-configure-node-based-apps-in-kubernetes/, it looks like direct ENV configuration should work, if that's the case, we don't need an init container.

Direct ENV configuration like this did not work before as REACT_APP_BASE_HREF showed as undefined before but I can try this again.
containers:
        - name: main
          image: quay.io/numaproj/numaflow:latest
          args:
          - "server"
          imagePullPolicy: Always
          env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: REACT_APP_BASE_HREF
               value: /app

@dpadhiar - you also need to update ./test/manifests/kustomization.yaml, to change the init container's imagePullPolicy, otherwise the e2e test won't pass.


minor updating packages

:tada: This PR is included in version 3.0.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[SparkR][Test]:remove unnecessary suppressWarnings

What changes were proposed in this pull request?
In test_mllib.R, there are two unnecessary suppressWarnings. This PR just removes them.
How was this patch tested?
Existing unit tests.

Test build #67827 has started for PR 15697 at commit a292ae8.

Test build #67827 has finished for PR 15697 at commit a292ae8.

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

Merged build finished. Test PASSed.

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

retest it please

windows failure seems unrelated

Build started: [SparkR] ALL
Diff: https://github.com/apache/spark/compare/master...spark-test:61EB4045-4845-4B2D-9AE9-6F0CC42B7B6E

Hm, yes it seems unrelated. I will look into this deeper.

It seems R 3.3.2 is released but R 3.3.1 is not registered in old ones yet (in see - https://cloud.r-project.org/bin/windows/base/old). @shivaram and @felixcheung Should we should use R 3.3.0 just for safety?

@HyukjinKwon Thanks for your time!

Build started: [SparkR] ALL
Diff: https://github.com/apache/spark/compare/master...spark-test:846E764A-967B-4CB2-A78C-968D86EDFEF2
I am pretty sure it is fine now :) it seems 3.3.2 was just released.

retest this please

Test build #67909 has started for PR 15697 at commit a292ae8.

Test build #67909 has finished for PR 15697 at commit a292ae8.

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

Merged build finished. Test FAILed.

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

retest this please

Test build #67920 has started for PR 15697 at commit a292ae8.

Test build #67920 has finished for PR 15697 at commit a292ae8.

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

Merged build finished. Test PASSed.

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

@HyukjinKwon It seems that windows test still fails with the same error

Oh, AppVeyor test is not triggered again with the Jebkins one.
Or, do you mean you launched another build via another account and manually tested it?

No, I just launched Jenkins test. I don't know how to manually trigger the AppVeyor test.

Ah, yes actually that's a problem now unfortunately. It seems even comitters can't retrigger. Actually, that's why I ran this via another account and left the comment above. I am trying to find a better way and will probably open a INFRA jira.

Hey @wangmiao1981, I just found another (a bit ugly) workaround to re-trigger. It seems it starts to rebuild after closing and re-opening. I just tested in https://github.com/spark-test/spark/pull/11

@HyukjinKwon the time window when download of an older version for windows could fail seem concerning. Is there a way to address that?

For the specific failure here, it was due to not syncing the latest version between the releases for Winodws and the others (when R 3.3.2 was released). As we use a fixed version, R 3.3.1 now (not the latest but old one), we wouldn't meet the same case for the same reason in the future (I described this problem in more details in https://github.com/apache/spark/pull/15709).
However, I guess you meant the concern of re-triggering the spurious failures in general. For re-triggering tests, I am still looking into this deeper. Will make a INFRA JIRA as soon as I figure out the way committers can re-trigger. Current ways I have figured out so far as a (ugly) workaround are,

Use another AppVeyor account
Closing and then re-opening to launch another build.

Now, I try to close and reopen it to trigger another windows test.

reopen it now.

right, I think I see two problems, both of those you have looked into (thanks)
first, if we can't rely on R releases for multiple platform to be push at roughly the same time, that's problematic if there is no other way to find the latest version of that platform. Since we are fixed on the lowest version on Jenkins, I see one of the benefits with appveyor is that we could pick up the latest version (we have been broken by both, more than once)
second, re-triggering is spotty. Is that perhaps an appveyor issue?
In any case we could likely follow up in separate JIRAs.

Yes, it is probably an issue because it seems currently no one except who has the AppVeyor account called ApacheSoftwareFoundation can re-trigger. I should look into this further though.. Will update you.

@felixcheung Any comments?

merged to master.


Project Deletion: Ingested Resources

Overview
As a user of IAM and Projects, when I delete a project, I expect that the project I deleted will be removed from all resources. Currently, when I delete a project, a reference to that project remains on ingested resources, which causes those resources to NOT appear in the (unassigned) filter like I would expect them to.
Design Details
Ideally, we can remove those project ids from ingested resources without needing to do a project update.

I was under the impression that project deletion triggered removal of the project from all resources, including the ones that ran through ingestion. If that's the case, do we need this?

It only triggers removal from non-infected resources

Implementation notes from discussion today:
- when a user deletes a project via the API or the UI:
  - there's a flag in the projects table that says the project is
    marked for delete
    - if marked, the project won't show up via the APIs
    - doesn't show up in GET APIs
    - maybe we do need a way to show it in the API so they know they
      what changed
  - there's NO API right now for determining whether we need to apply rules
    - we could implement this if we want the banner eventually
  - on 'Update Projects'
    - insert the project into the graveyard
    - delete the project first
      - disappears from the table
      - cascade delete of all the rules and other stuff
    - need to ensure that the listProjectRules API doesn't have the project
    - move the staged rules
      - is there an edge case here?
    - cereal jobs
      - updating the compliance and ingest domains
      - deletes project from teams and tokens
      - remove project from the graveyard after all the cereal things
        are done
      - note: calculation of done % is going to need to be updated

i guess the other thing we discussed at some point was to prevent the deletion of a project until it had zero ingest rules and was up-to-date... that may be another approach to consider.

NOTE: The implementation detail discussion above relates to the previous iteration of this card that framed the issue around the 'Update Projects' button instead of the expectations of the user. Please disregard the implementation above and let's take a look at this again with a fresh approach.

Notes from sprint planning:

need to delete the project from postgres and all the rules associated with it
have a job that goes through and deletes the project references from the ES data

can be run via a painless script in ES
should be run via a cereal job by the services responsible for the data, e.g. ingest service, compliance, config mgmt

Failure cases and race conditions:

what happens if project update is happening at the same time as deletion?

Painless update looks something like:
cat <<EOF |
{
"script": {
  "source":"ctx._source.projects.remove(project)",
  "lang":"painless",
  "params": {"project":"avengers"}
  }
}
EOF
curl -H'content-type:application/json' -XPOST http://localhost:10141/node-state/_update_by_query&q=*:* -d @- | less

Update on implementation options after some discussion/exploration/work:
Closer look at options after spiking/working/discussing:

Just don’t allow users to delete a project in GA
Work involved:

Remove control menu/delete from UI
Return message from API “can’t do this yet” (or remove from api? :shrug:

Use the project update (button)
UX pro: project change is consistent with other ingested resource changes
UX con: person has to wait for the possible long duration of an update for delete to take effect
ENG pros:

System is mostly in place

Means avoiding possible collisions/race conditions around a delete because one “system” is handling it all
(If a user deletes a project and another updates that project, we think we’re ok, but if a user updates a project and then another deletes it, we’re less confident. )
(We could additionally block deletes during updates, though that’s part of the “rebuilding the same thing” concern)

We don’t add a lot of extra code to manage/track in an already complex system

We don’t have to build another version of ProjectUpdate (similarities abounded when we realized we needed to account for lots of the same concerns, such as a system crashing/race conditions)

Opportunities to optimize, since if deletes/updates are all handled in ProjectUpdater, we can avoid updating a thing we’re deleting and can batch requests
ENG cons/work involved:
On delete of a project, we’d need to:

Push its rules into the staged rules table (marked for delete). This is how we currently determine whether a rule needs an update.
OR

Create an API which checks for deleted projects as part of determining a need for a project update.

Modify the list API to only return projects not marked for deletion

Modify projects db to have a deleted bool field

Modify the project delete functionality to only mark a project deleted

Ensure that the project was deleted on project update

Use the ProjectPurger to remove the project tag from ingested resources as well as IAM resources

Pros: faster than a long running project update
Cons:

not much faster
requires duplication of project update work
lots of redundancy across services
potential race conditions around multiple deletes

Require user to delete a project’s rules and “Update Projects” before they can delete the project

Pros:

User has full understanding of the impact of project deletion/rule removal
Pretty low effort Engwise: return API error if attempting to delete project with rules. UI messaging w/ instructions.

Cons:

User might have to wait a long time for rules to be applied and then has to remember to go back to delete project


TODO list for v0.1 release

This is the list of things that have to be done before 1st ever release of this crate can be published to crates io. If you think something needs to be added, feel free to add suggestions in the comment.

[x] 3d camera view
[x] API for drawing 3d points and lines
[x] Support for coordinate systems and transformations
[x] Add MapBuilder to simplify setting up a map
[x] Consolidate duplicate code from regular and web examples
[ ] Add cache limiting mechanism for tile providers
[x] Support for touch screens
[ ] Feature layer styling

[ ] Point dot symbol
[ ] Point circle symbol
[ ] Point square symbol
[ ] Point image symbol
[x] Line symbol
[x] Polygon symbol

[ ] Fully feature-flag wgpu, serde, web
[ ] Write the best documentation in the world

Text symbol for Point and Line.

Oh no, that's for v0.2. It's quite an undertaking to support text rendering...


Visualise changes over time

Closes #141
Closes #142
Closes #174
Closes #176
Closes #177
Closes #178
Closes #179
Closes #180
Closes #181
Closes #182
Closes #184
Closes #185

Note, this update introduces a bug with the arrowheads which will be addressed in a future issue (see #174).

Okay, had to hand roll my own BODS 0.3 test data (because examples are so broken):
https://gist.github.com/radix0000/5e612d582b41a8aca5bfff4d5e396bf8
So doesn't show change over time with BODS 0.3 (which is fine if that is the intention), but does go into "change-over-time mode" with slider displayed if there is a replacesStatement property present (you just can't slide the slider, and all statements displayed), but latest time it shows conflicts with the fact all statements are shown, which is a bit confusing. So if it is intended that doesn't support change-over-time for 0.1-0.3 then recon that slider should always be hidden regardless of whether there is a replacesStatement property or not.

@radix0000 Thank you. @kd-ods and I discussed this at length and came to the decision that 0.4 data renders and interactive slider, whereas pre-0.4 data with a change-over-time element renders an inactive slider to indicate that there is change-over-time data, but not render the changes themselves. The slider is hidden only if there is no change-over-time data detected.


Benchmark getting data from archived project into s3 Bucket

Description of the task:

Benchmark the time/effort needed to move data from ENA into an s3 bucket for upload into ingest.
Steps:

Given an accession, retrieve all URIs for the files
Set up an upload session in the EC2
Begin upload from ENA URIs
Verify all files are valid by uploading to ingest (in dev? staging?)

Acceptance criteria for the task:

[ ] A summary of the steps followed is created for other wranglers to be able to use it if needed.
[ ] Blockers have been identified for the process
[ ] Blockers have been adressed in tickets for future prioritisation

I have created a script that should do part the job easier https://github.com/ebi-ait/hca-ebi-wrangler-central/pull/57
It's under review, once it's been accepted and merged I can proceed to benchmark how much will it take

I have used the script and benchmarked the results:
For a total of 1080 GB of data (~1TB) it took approx 5 h 30 minutes with 5 threads (Simultaneous uploads) given a INSDC accession (SRP).
This data was extracted from the ENA mirror data (warehouse), so it is equivalent to extracting from an ENA ftp.
The biggest blocker identified is the amount of time it takes, but setting up a virtual session in tmux in the EC2 you can leave it running and it causes no problem.
Will begin upload to ingest soon. This was done for the dataset on #61 so I am waiting for secondary review before uploading files to ingest.

@ESapenaVentura this looks done to me, is that fair? Or were there issues identified that we should resolve before using this to transfer the files for other datasets?

I agree that this is almost done, maybe today I can find a piece of our documentation where I can put a really simple how-to use this tool (it's only 1 command, but I'd like it documented). Then we can close it!

Yes, good point, getting this procedure documented will be really useful!

Documented in here https://ebi-ait.github.io/hca-ebi-wrangler-central/tools/handy_snippets.html#uploading-files-to-an-s3-bucket-from-the-archives
Closing the ticket!


Allow distribution of the AW CI log

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main@4c2e1d8). Click here to learn what that means.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #130   +/-   ##
=======================================
  Coverage        ?   31.29%
=======================================
  Files           ?        8
  Lines           ?      524
  Branches        ?        0
=======================================
  Hits            ?      164
  Misses          ?      331
  Partials        ?       29

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[fix-10608] [worker] move setting of TaskExecutionContext to finally block

Purpose of the pull request
#10608

Brief change log

move setting to finally
add log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Codecov Report

Merging #10613 (9662ef5) into dev (16144a8) will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##                dev   #10613   +/-   ##
=========================================
  Coverage     40.93%   40.93%
  Complexity     4875     4875
=========================================
  Files           895      895
  Lines         36212    36212
  Branches       3987     3989    +2
=========================================
  Hits          14824    14824
  Misses        19922    19922
  Partials       1466     1466

Impacted Files
Coverage Δ

...r/server/worker/processor/TaskCallbackService.java
2.12% <0.00%> (-0.03%)
:arrow_down:

...eduler/server/worker/runner/TaskExecuteThread.java
15.97% <0.00%> (+0.11%)
:arrow_up:

...dolphinscheduler/remote/future/ResponseFuture.java
81.96% <0.00%> (-1.64%)
:arrow_down:

...er/master/dispatch/host/assign/RandomSelector.java
83.33% <0.00%> (+5.55%)
: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 16144a8...9662ef5. Read the comment docs.

And please revert the change of setVarPool.
taskExecutionContext.setVarPool(JSONUtils.toJsonString(this.task.getParameters().getVarPool()));

good idea.

No update for months, the lastest code had changed, so I will close this pr.


Adding MDX Embed Components

Adding most, if not all, components from mdx-embed.com and making them available to every page.
Not sure why the docs site is down, but here's the repo: https://github.com/PaulieScanlon/mdx-embed
Adds components like <Youtube /> and <Wikipedia /> that can be auto-embedded.
I used it for a dev site.

Here's a snapshot: https://web.archive.org/web/20230201065644/https://www.mdx-embed.com/

Hey! Thanks for the PR. Two possible issues need to be discussed here:

Any implications on performance after adding all those embeds. How bundle size changes?
The build currently fails. Can you please look into that?

Cheers!


[Related Content] Move edit page and create issue links to right rail

Description
We would like to move the "edit this page" and "create issue" links out of the Global Header and into the right rail. Design is still in progress.
We may want to remove these from the Global Header only on the sites with a right rail.
NOTE: the links will still be present in the footer.
Helpful Links

#476 (right rail UI)

Screenshots
Work-in-Progress Wireframes

We have decided to hold off on this for now.


Double click crash

If I click twice on date, it gets crash

@STPLAmrut
Thank you for the reporting.
I will fix it to version 1.1.0 and distribute it.

Resolved it in 1.0.1 version.


Fix Artifact type to a pointer

Prior to this, the Artifacts in TaskRunStatusFields was not set to a pointer of the underlying struct. As a result, it was incompatible with tkn. Here we fix that issue by updating it to a pointer.
Fixes https://github.com/tektoncd/pipeline/issues/8225

Changes

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Has Docs if any changes are user facing, including updates to minimum requirements e.g. Kubernetes version bumps
[x] Has Tests included if any functionality added or changed
[x] pre-commit Passed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings). See some examples of good release notes.
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
Fix Artifact type to a pointer.

/kind bug

/cherry-pick release-v0.62.x

/lgtm

/retest

/lgtm

Did it manually here : https://github.com/tektoncd/pipeline/pull/8228


$relationship not returning data on nested relationship

Hi @flugger
I have:
LeadTransformer.php
protected $relations = [
    'customer',
];

CustomerTransformer.php
protected $relations = [
    'addresses',
];

GET /leads?with=customer // OK, return leads with customer data
GET /leads?with=customer,customer.addresses // ONLY return leads with customer data; without the addresses

if I change it to $load:
CustomerTransformer.php
protected $load = [
    'addresses',
];

GET /leads?with=customer // return leads with customer data and addresses; since it will load as default relations

Any Idea on how :
GET /leads?with=customer,customer.addresses // ONLY return leads with customer data; without the addresses

could also return with the related customer addresses by using it at the $relations ?

Hey @wukongrita! Sorry for the late response. Did you manage to find a solution to this? Have you tried to add a mapping to the transformers to the arrays:
protected $relations = [
    'customer' => CustomerTransformer::class,
];

protected $relations = [
    'addresses' => AddressTransformer::class,
];

Hi @flugger ,
I have try the solution and yes it's working and showing the relations.
As before, I already setup the model with the transformer in the TransformerServiceProvider.php like:
\App\Models\Lead::class => \App\Transformers\LeadTransformer::class,
\App\Models\Customer::class => \App\Transformers\CustomerTransformer::class,
\App\Models\Address::class => \App\Transformers\AddressTransformer::class,

I thought that by setting it in the Service Provider, it will automatically included too (but it is not)..
Then, by that mean; I got to map every $relations or $load to its Transformer Class, right?
Thank you..

Yeah, correct, the problem is that the package doesn’t know which models the “customer” or  “addresses” relate to until they are loaded.


Play YouTube Video

Hello,
What method can play a YouTube video by xZune.Vlc. I tried different ways but nothing worked. Thanks a lot

I don't known about how to play a YouTube video, but I think if you can get the url of the video, you can use xZune.Vlc to play it.

You can use flagbug/YoutubeExtractor to get the video URLs. Most of the HD videos I don't think you can stream easily unless its without the audio. I'm looking to switch away from the MediaPlayer and I just found this project. One of the things I need to do is stream YouTube videos so if I get it to work I'll let you know.

I was able to just put the url of the youtube video into the sample and hit load and it streamed fine.

Hi,
to acquire YouTube video URL using Google.Api.YouTube.v3.
YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer() {
ApplicationName = "{yourAppName}",
ApiKey = "{yourApiKey}",
});
SearchResource.ListRequest listRequest = youtube.Search.List("snippet");
listRequest.Q = "Batman v Superman Dawn of Justice Official Final Trailer (2016)";
listRequest.MaxResults = 5;
listRequest.Type = "video";
SearchListResponse resp = listRequest.Execute();
foreach (SearchResult result in resp.Items.Take(1)){
IdVideoYouTube  = result.Id.VideoId;
}
I need to just play video through xZune.Vlc, but it does not work
Player.LoadMedia(new Uri("https://www.youtube.com/watch?v=" + IdVideoYouTube));
Player.Play();
Thanks a lot

I think you should get the real video address, not a web address.

You can use the project flagbug/YoutubeExtractor to get the direct url to the youtube video.
`string link = "insert youtube link";
/*

Get the available video formats.
We'll work with them in the video and audio download examples.
*/
IEnumerable videoInfos = DownloadUrlResolver.GetDownloadUrls(link);
VideoInfo video = videoInfos
.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360);

//then tell vlc to play video.DownloadUrl`

Thanks so much already it works


lts latest version has problem in jenkins-plugin-cli

Hi,
jenkins helm chart use jenkins-plugin-cli for installing jenkins plugins.
but lts latest version docker image's jenkins-plugin-cli
does not have JAVA_OPTS.
This is critical problem for users who should use http proxy like me.
How about update lts image ?

It should have been fixed by https://github.com/jenkinsci/docker/pull/1025 in recent releases.
Might be useful to get it in LTS

@oleg-nenashev
I think you are wrong.
 So the next LTS release should include the fix.
Sorry for inconvenience it caused.

when will next release come?

Jan 13 is the current ETA


Can't Install reflect-metadata

I am writing a NODE stack application, which uses Angular2, passportJS and a number of other dependencies which seem to have peer dependencies on either<EMAIL_ADDRESS>or<EMAIL_ADDRESS>However, whenever I install or update these, I get warnings that this dependency is not met. If I run

npm i reflect-metadata

then I get the following output:
npm i reflect-metadata --save

><EMAIL_ADDRESS>install /Users/georgeedwards/Desktop/Gen-App/node_modules/bcrypt
> node-gyp rebuild

  CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
  SOLINK_MODULE(target) Release/bcrypt_lib.node
<EMAIL_ADDRESS>/Users/georgeedwards/Desktop/Gen-App
├──<EMAIL_ADDRESS>extraneous
└── UNMET PEER DEPENDENCY<EMAIL_ADDRESS>
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

however many times I run that command, it doesn't seem to install, or throw any errors...
I am using a mac, running OSX 10.
npm list reflect-metadata
<EMAIL_ADDRESS>/Users/georgeedwards/Desktop/Gen-App
└── UNMET PEER DEPENDENCY<EMAIL_ADDRESS>
npm ERR! peer dep missing<EMAIL_ADDRESS>required by<EMAIL_ADDRESS>npm ERR! code 1

+1
Running Windows 10
Node v6.3.0
NPM v3.10.3
npm i reflect-metadata -- UNMET PEER DEPENDENCY<EMAIL_ADDRESS>

@georgeedwards It looks like angular 2.0.0-beta.9 has the specific version of 0.1.2 as a dependency for reflect-metadata. Later releases seem to have switched to using a caret version spec of ^0.1.3. If you are tied to 2.0.0-beta9 then you must use 0.1.2 specifically. If you require a later version of "reflect-metadata", consider using angular2 2.0.0-rc.2 or later.
I'm closing this as there is no action I can take. If you fill this is in error, please feel free to reopen.

@rbuckton thank you for your prompt response. Upon further review it appears the packages are available and functional even though the error is being thrown.


[Feature] Support show tablets stmt

Proposed changes
Issue Number: close #7969
Problem Summary:
support show tablets stmt.
Checklist(Required)

Does it affect the original behavior: (No)
Has unit tests been added: (No Need)
Has document been added or modified: (No)
Does it need to update dependencies: (No)
Are there any changes that cannot be rolled back: (No)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

It seems that the current show tablet can completely cover the needs of show tablets.
Is it unnecessary to add this api?

It seems that the current show tablet can completely cover the needs of show tablets. Is it unnecessary to add this api?

like show tables， may be show tablets is more reasonable

I think it show tablets + id seems confused, also not a good way to supply two ways to get tablets from table @EmmyMiao87 @yangzhg

tablets

yes it should be. show tablet id and show tablets from table

I think it show tablets + id seems confused, also not a good way to supply two ways to get tablets from table @EmmyMiao87 @yangzhg
Yes! It should be show tablet id and show tablets from table

I think it show tablets + id seems confused, also not a good way to supply two ways to get tablets from table @EmmyMiao87 @yangzhg

yes，i delete show tablets + id .
only support show tablets from table like show partitions from table.

please alse update doc, please @ChPi

please alse update doc @ChPi

docs are copied from show tablet and made some changes, please take a look

and you also need modify show tablet doc, since that we only support show tablets and show tablet id now


Fix causing the connection to hang without flushing data

Motivation:
Explain here the context, and why you're making that change.
What is the problem you're trying to solve.
Modification:
channel.flush() after a few channel.write() operations may get processed by the pipeline before the writes, causing the connection to hang without flushing data.
Result:
If the write fails, I let it continue to try again.  All the way up to writeSpinCount is zero.
before
`
                int attemptedBytes = buffer.remaining();
                final int localWrittenBytes = ch.write(buffer);
                if (localWrittenBytes <= 0) {
                    incompleteWrite(true);
                    return;
                }
                adjustMaxBytesPerGatheringWrite(attemptedBytes, localWrittenBytes, maxBytesPerGatheringWrite);
                in.removeBytes(localWrittenBytes);
                --writeSpinCount;

`
after
`
                int attemptedBytes = buffer.remaining();
                final int localWrittenBytes = ch.write(buffer);
                if (localWrittenBytes <= 0) {
                    incompleteWrite(true);
                }else {
                    adjustMaxBytesPerGatheringWrite(attemptedBytes, localWrittenBytes, maxBytesPerGatheringWrite);
                    in.removeBytes(localWrittenBytes);
                }
                --writeSpinCount;

`
Fixes #<10353>.
fix https://github.com/netty/netty/issues/10353
If there is no issue then describe the changes introduced by this PR.

I have a hard time to see how this could fix the issue . Can you explain why you think it will ?

In the case of frequent writes,
ch.write(buffer);  It's going to return 0. and buffer is not read.
but before the logic was this,
`
        if (localWrittenBytes <= 0) {
                incompleteWrite(true);
                return;
            }

`
It simply returns, causing the buffer not to be read and written at all, and then there is no room to process the buffer again.
I think if the buffer is not read, I will retry it until writeSpinCount is zero

Something like this
`
  while ((length = inputStream.read(buffer)) != -1) {
            out.write(buffer, 0, length);
            out.flush();
        }
        out.flush();

`

That's incorrect ... if we fail to write the buffer we will retry as soon as the channel becomes writable again

But there is no normal retry because there is no place to set OP_WRITE again

isFlushPending method  Always returns

The committed code has been changed, and retry to writeSpinCount to end

please... Thank you

My system in Window 10, My friend's MAC OS,  there's no event here
`
       if ((readyOps & SelectionKey.OP_WRITE) != 0) {
            // Call forceFlush which will also take care of clear the OP_WRITE once there is nothing left to write
            ch.unsafe().forceFlush();
        }

`

Because I'm currently inEventLoop , I haven't been able to trigger OP_WRITE, I think.
`
      if(inEventLoop){
          trigger processSelectKeys()
     }

`
How about this idea?

@wangzihaogithub sorry but this change is not valid... OP_WRITE should be triggered by the OS as soon as the channel becomes writable again. Spinning will not fix anything.

We found the problem,
My solution now is to modify the user code and use another business thread to execute the submit writetask or flushtask. This will not block processselectedkeys() and runalltasks() of the EventLoop
Because you are currently in the processselectedkeys() of the EventLoop in unsafe.read (), at this time, the write operation is executed in the Current IO thread. If the write is busy, the read method of the current thread has not been completed, so the next selectionkey (OP_ WRITE) cannot be triggered).
Tip: even if the operating system does not actively notify the Op_ Write, spin 2 ~ 3 times, write successfully.

but , I'll try and find a better way

Sorry, I don't understand the actual issue. Can you give us code to reproduce and explain the issue in more detail?

I agree with @hyperxpro here... its not clear to me what exactly happens and why you think your solution will fix it.

@hyperxpro @sprsquish
hi.
I created a use case that you can run directly with replay。
Just look at UseCase1, Case2 and I'm not done yet.
https://github.com/wangzihaogithub/netty-issues-10353.git

Your code is super complicated for no reason. :-|

@hyperxpro
I've simplified the code a little bit, please take a look at it again.
place open Browser. enter http://localhost:8080  . Will not complete 6GB data write to browser.

Improved your code.
package io.netty.channel.nio;

import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.channel.*;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.http.*;
import io.netty.util.concurrent.DefaultThreadFactory;
import io.netty.util.internal.OutOfDirectMemoryError;
import io.netty.util.internal.logging.InternalLogger;
import io.netty.util.internal.logging.InternalLoggerFactory;
import org.junit.Assert;

import java.nio.channels.SelectionKey;

/**
 * channel.flush() after a few channel.write() operations may get processed by the pipeline before the writes,
 * causing the connection to hang without flushing data.
 *
 * case 1 ->
 *  if run at IO, is block. never trigger processSelectedKey() method. the event #OP_WRITE.
 *  causing the connection to hang without flushing data.
 *
 * https://github.com/netty/netty/issues/10353
 */
public class UseCase1 {
    private static final InternalLogger logger = InternalLoggerFactory.getInstance(UseCase1.class);

    public static void main(String[] args) {
        ServerBootstrap bootstrap = new ServerBootstrap();

        NioEventLoopGroup parentGroup = new NioEventLoopGroup(6);
        EventLoopGroup childGroup = new NioEventLoopGroup(6);
        bootstrap.group(parentGroup, childGroup)
                .channelFactory(NioServerSocketChannel::new)
                .childHandler(new ChannelInitializer() {
                    @Override
                    protected void initChannel(Channel ch) throws Exception {
                        ch.pipeline().addLast(new HttpServerCodec());
                        ch.pipeline().addLast(new Write6GBDataChannelHandler());
                    }
                });

        bootstrap.bind(8080).addListener(new ChannelFutureListener() {
            @Override
            public void operationComplete(ChannelFuture future) throws Exception {
                logger.info("place open Browser. enter http://localhost:8080  . Will not complete 6GB data");
            }
        });
    }

    private static class Write6GBDataChannelHandler extends SimpleChannelInboundHandler<HttpObject>{

        @Override
        protected void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception {
            if(msg instanceof LastHttpContent) {
                long length =<PHONE_NUMBER>L;

                HttpResponse httpResponse = new DefaultHttpResponse(HttpVersion.HTTP_1_1,HttpResponseStatus.OK);
                httpResponse.headers().set("content-length", length);
                httpResponse.headers().set("content-disposition", "attachment;");
                httpResponse.headers().set("content-type","application/octet-stream");
                ctx.writeAndFlush(httpResponse);

                for (int i = 1; i <= 5000000; i++) {
                    byte[] bytes = new byte[1000];
                    length -= bytes.length;

                    ByteBuf buffer = ctx.alloc().buffer();
                    buffer.writeBytes(bytes);
                    ctx.writeAndFlush(new DefaultHttpContent(buffer));

                    long start = System.nanoTime();
                    while(start + 10000 >= System.nanoTime());

                    if (i == 5000000) {
                        ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
                    }
                }
            }
        }

        @Override
        public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
            logger.info("channelReadComplete = {}",ctx.channel());
        }

        @Override
        public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception {
            logger.info("channelWritabilityChanged = {}",ctx.channel());
        }
    }
}

This patch looks valid.

Without this PR, the write operation stops, and memory increases.
With this PR, even after writability changes, we can still write data.

I'm not sure if it's a bug or channelWritabilityChanged needs to be handled by us. @normanmaurer Help :)

Because you are currently in a worker thread after a busy write, the next OP_WRITE event can never be triggered.
My patch tried not to be notified by the operating system, because if the current thread had to be released when the operating system notified it, the recovery was quick in most cases, requiring only a few spin retries.

Although after testing, waiting for the operating system notification will get better performance, but it must require the user to release the current working thread.
I think this can give the user more choice. If the user wants to get better performance, he can release the current thread. If the user does not care, it will not affect the normal execution logic of the program

@wangxiyuan honestly what you do here is just an user error.. I mean sure we can spin a bit but at the end the will not solve the real porblem which is that you basically "block" the EventLoop.

So I am not convinced this patch does anything useful... It may even harm as it may delay the processing of other channels.


Canvas rendered initialized with 1.5 scale

Hello,
I used succesfully html2canvas but suddenly it scales my canvas at 1.5 and I do not know why because I did not specify this. I just want a normal render. So when I use Inspect tool on Chrome it shows me the message below. I do not want any scale.
148ms html2canvas: Canvas renderer initialized (1512x1133 at<PHONE_NUMBER>210938,323.84869384765625) with scale 1.5
Specifications:

html2canvas version tested with: 1.0.0-alpha.9
Browser & version: Chrome
Operating system: Windows 10

I believe that's because the default render scale is your device pixel ratio, which in your case seems to be 1.5. you can pass in {scale: 1} in the config

Exactly what jamespantalones said.


Manage routes with apache or nginx

This is the current status:

After using a reverse proxy it should be something like this:

Merged in #15


updated sitemap and validated xml

I've removed some old content that no longer exists and added some new static content. The XML is valid.

Hey @QuincyLarson I was thinking if we could remove all of the old logos, favicon which is old (we now host them on S3).
This could be a good task for first timers?

@raisedadead Is that comment related to this PR?

@BerkeleyTrue nope that can be taken up as a separate activity. This is good to go.


Run directory undefined specified by model_version doesn't exist

I am trying to run custom model without using docker compose.
This is code that I am using to launch the server. But I get an error model_version doesn't exist.
app = init_app(
    model_class=MyModel,
    model_dir=os.environ.get("MODEL_DIR", os.path.dirname(__file__)),
    redis_queue=os.environ.get("RQ_QUEUE_NAME", "default"),
    redis_host=os.environ.get("REDIS_HOST", "localhost"),
    redis_port=os.environ.get("REDIS_PORT", 6379),
)
if __name__ == "__main__":
    app.run(host="localhost", port=9090)

Run directory undefined specified by model_version doesn't exist
Traceback (most recent call last):
  File "/media/idk/idk1/label-studio-ml-backend/label_studio_ml/model.py", line 54, in get_result
    job_result = self.get_result_from_job_id(model_version)
  File "/media/idk/idk1/label-studio-ml-backend/label_studio_ml/model.py", line 107, in get_result_from_job_id
    result = self._get_result_from_job_id(job_id)
  File "/media/idk/idk1/label-studio-ml-backend/label_studio_ml/model.py", line 183, in _get_result_from_job_id
    raise IOError(f'Run directory {job_dir} specified by model_version doesn\'t exist')
OSError: Run directory undefined specified by model_version doesn't exist

Hi @magicaltoast
Do you have a train method in your model?
Is there a folder with model version?

@KonstantinKorotaev
I don't have a train method.
Now I noticed that the ml backend is creating a folder with a timestamp as a name for each request made for my backend.

Do you use ML backend with Label Studio or separately?

I train it outside (not using label studio training capability). But the inference call is made by labelstudio

Do you get predictions in your LS instance?
It seems that you have empty version in LS, can you assign it in Project Settings?

Yes it's working but for every reqest there is this error in terminal and new folder with current timestamp is created

I'm also getting similar error (but with current timestamp instead if undefined).
I have labelstudio and labelstudio (1.4.1) ml backend (1.0.5) running as deployments in GKE
"Traceback (most recent call last):   File "/usr/local/lib/python3.9/site-packages/label_studio_ml/model.py", line 54, in get_result     job_result = self.get_result_from_job_id(model_version)   File "/usr/local/lib/python3.9/site-packages/label_studio_ml/model.py", line 107, in get_result_from_job_id     result = self._get_result_from_job_id(job_id)   File "/usr/local/lib/python3.9/site-packages/label_studio_ml/model.py", line 183, in _get_result_from_job_id     raise IOError(f'Run directory {job_dir} specified by model_version doesn\'t exist') OSError: Run directory models/1644842891 specified by model_version doesn't exist"
It happens when trying to Start Training from labelstudio UI. When making POST call straight to ML backend API/train` endpoint with labeled data & label config as json payload training runs fine

I had the same error,  solution is to downgrade label-studio to 1.4.0
pip install label-studio==1.4.0

Hello, I have the same problem. With the update to 1.4.0 this error has been solved but obtain other ModelWrapper is not itterable (in has_active_model). I have changed some part of code to solve this but the next error has been "ModelWrapper' object does not support item assignment into 'create' method of LabelStudioMLManager Class.
Note that this error only have it with ner example (ner_ml_backend.py from flair folder examples).
Can you help me, please?
Thanks

Hi @MEugeniaC
Could you please checkout ML backend from this branch?

Hi @MEugeniaC Could you please checkout ML backend from this branch?

upgrading label studio to 1.4.1 and a checkout of label studio ml backend to DEV-1693 solved the issue

Hello, I upgraded label studio to 1.4.1 and checkout to DEV-1693 but the error still persists...

@hadiyouness10
Do you mean this one:
OSError: Run directory undefined specified by model_version doesn't exist
?

yes

yes, I have the same error again

I checked the network from the label studio UI, it seems to be empty request:
on firefox it gives:
status_code	401
version	"1.4.1"
detail	"Authentication credentials were not provided."
exc_info	null
On google chrome:
{"id":"9cad8fb0-8802-4c12-8394-2c520aad2bfe","status_code":405,"version":"1.4.1","detail":"Method "GET" not allowed.","exc_info":null}
Is this problem?
I don't think the request is getting properly to the backend

yes, I have the same error again

@YigitBurdurlu @hadiyouness10  could you please share your environment settings (LS version, ML backend version, OS, python and libs version?

I checked the network from the label studio UI, it seems to be empty request:

@hadiyouness10 could you please describe the actions that you do in LS?

LS version: 1.4.1
ML Backend: checkout to dev 1693
OS Linux Ubuntu 20.04
python 3.8.10
Actions:
1- Create a project
2- Sync images using local files (images appear in the project)
3- Import annotations using API (annotations added to each image)
4- Head to Machine learning and connect the backend (add URL --> Connects successfully backend up)
5- Press on start training --> Gives model version error

Issue fixed, the problem was that when encountering an error in training, it wasn't getting to the end of the fit function which returns None, and couldn't create the job_result.json file...


test-branch/execute-job/quoted-authorization/d2d7ce90-518a-4193-8fc4-04ffb7c40c40

PR for testing 3aa8f37ce69e830917be3b836642000af9af25e3

/canonical/self-hosted-runners/run-workflows 3aa8f37ce69e830917be3b836642000af9af25e3


fixed Bugs:  Login, SuperUser Settings, Deprecated itenary operations

Deprecated PHP operation: in file Qs.php goToRoute function:
public static function goToRoute($goto, $status = 302, $headers = [], $secure = null)
  {
        $data = [];
        $to = (is_array($goto) ? $goto[0] : $goto )?: 'dashboard';
        if(is_array($goto)){
            array_shift($goto);
            $data = $goto;
        }
        return app('redirect')->to(route($to, $data), $status, $headers, $secure);
    }

"Unparenthesized a ? b : c ?: d is deprecated. Use either (a ? b : c) ?: d or a ? b : (c ?: d)
Error in Login credentials:  fixed known issues with email required in login form https://github.com/4jean/lav_sms/issues/10
login page email is required not identity
Manage subject 500 Internal Server Error Please Check for Duplicate entry or
Contact School Administrator/IT Personnel
This occurs when adding a new subject without a short name. Because short name (slug) is not required in the front end form but not nullable in migration.
fixed Undefined index: _nt_fee_c lav_sms\resources\views\pages\super_admin\settings.blade.php
correcting nt_fee to next_term_fees and adding next_term_fees for
all ClassTypes in SettingsTableSeeder.php

goToRoute

Thanks for your contributions


Expand Upon The Wiki

A dev todo item...
Any contributions are welcome as long as it complies with our CODE-OF-CONDUCT

Added docs to the wiki!!


Add filtering for simulator logs based on the PID of the started process.

Add filtering for simulator logs based on the PID of the started process.
In order to use the filtering, just pass the output of startApplication method as a second parameter of printDeviceLog method.

:+1:


[CardRangePicker] allow for custom time ranges

Summary
It would be useful to be able to give custom time ranges in the CardRangePicker. For an example use case in Monitor, we need different time ranges for TimeSeriesCards when raw metric values are used so that we can have a smaller like Last 8 hours, Last 4 hours, Last 2 hours, Last hour
Specific timeline issues / requests
Do you want this work within a specific time period? Is it related to an
upcoming release?
September release
Available extra resources
What resources do you have to assist this effort?
Will add myself

:tada: This issue has been resolved in version 2.108.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Wrong description for Example 5

Example 5 claims that it will add<EMAIL_ADDRESS>as an additional owner to the group.
In oppose the documentation for the parameter -Owners states: The array UPN values of owners to set to the group. Note: Will replace owners.

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

ID: 1c7c0144-3d70-5812-617f-3ab914aca3eb
Version Independent ID: f188ada0-7d29-0c95-fa51-c0a62a71a8d0
Content: Set-PnPUnifiedGroup (sharepoint-pnp)
Content Source: sharepoint/sharepoint-ps/sharepoint-pnp/Set-PnPUnifiedGroup.md
GitHub Login: @techwriter40
Microsoft Alias: kirks

@officedocsbot assign @yogkumgit

Hello @Weishaupt Thanks for your feedback.
I tested in a lab and could confirm what you submitted here, I created a PR to correct the documentation of the article.
Thank you

@get-itips  Thank you very much for the contribution and updating the documentation with PR. @Weishaupt Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.

@officedocsbot close


Songs not playing in game

I followed the instructions on Gamebananna to the exact word, but when I try playing the songs in the game, the audio just doesn't play

Nevermind, I got it to work, I accidently removed the semicolon on the stream folder


Add labels to PR sidebar.

Summary
This PR adds support for labels in the PR sidebar, essentially identical to how they already render for issues.
I leverage PR labels a lot in my workflow, so this is helpful to quickly see which PRs have (or are missing) labels.
How did you test this change?
Add labels to PRs - see that they render similar to labels
Images/Videos
Here is an example PR with a label (PR can be found here).

Looks good! Thank you

Hey @robdimsdale, just trying this feature out locally and noticed that if there are labels that overflow to the next line, things start to break. Can you please add code that checks if 2+ labels fit in the same line, and if not - overflow the label yourself by appending a new line?

@dlvhdr yeah, I just saw that too.
I'll take a look ASAP

@dlvhdr fixed in: https://github.com/dlvhdr/gh-dash/pull/378


Getting NULL on $page->content()

Describe the bug
Getting NULL on $page->content() randomly : on a few websites, it's working, on others not.
Reproducible example
I try with a blank new installation
<?php

use Nesk\Puphpeteer\Puppeteer;

include 'vendor/autoload.php';

$url = 'https://www.nytimes.com/international/';
$puppeteer = new Puppeteer();
$browser = $puppeteer->launch();
$page = $browser->newPage();
$page->goto($url);
var_dump($page->content());

When i set headless false, i can see the page is correctly loaded.
Generated logs
When i try to log it, i get :
Execution context was destroyed, most likely because of a navigation.

Environment (please complete the following information):

OS: Ubuntu 24.04
Node version:20.11
PHP version 8.3.14

My Node package manager is:

NPM 10.9.2

I am facing the same null issue if data is too large I am getting a JSON from a page.
I beleive if size of Data increase it returns null
$responseJson = $page->evaluate(
    JsFunction::createWithBody(
        "
        if (document.querySelector('pre'))
        {
            return document.querySelector('pre').innerHTML.length;
        }
        return false
        "
    )
);

I also Increase memory_limit on php.ini and Node limit but still same
@RobinDev might be resources issue. can you help share your specs because the same code works for me on Ubuntu Instance.
I am facing issue on my Development Laptop.

I'm facing the same issue.


[stable/phpbb] Add ingress support

Signed-off-by: Javier J. Salmeron Garcia<EMAIL_ADDRESS>
What this PR does / why we need it:
This PR adds ingress rules to phpbb (disabled by default)
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/ok-to-test
/lgtm


chore: bdd-spring-1570614300 to 0.0.1

chore: Promote bdd-spring-1570614300 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


toolchain: remove dependency on DEVELOPER_DIR on Windows

This environment variable is not stable and should be avoided going
forward.  The toolchain no longer relies on it and will be removed in a
future toolchain release.  The paths which are being computed relative
to these variables can be computed in alternative manners.  This should
be safe with older releases and newer releases of the toolchain on
Windows.

@swift-server-bot add to allowlist

Does Swift 5.5 and earlier still require the developer dir environment variable?

Yes, 5.6 and earlier will use it, but it is safe if you do not.  The results will be the same in those releases.

@compnerd you need to install the Prettier - Code Formatter extension in vscode to format the code. With it installed every time you save it will format the code correctly.
The merge is being blocked based on code formatting issues.


Switch to javascriptcore-sys

I maintain a javascriptcore-sys crate which is more complete and has some documentation.
(I also have a javascriptcore crate, but I'm not suggesting replacing this one with it quite yet.)
Getting this crate to use the javascriptcore-sys crate is a pretty simple set of changes, and I can submit a PR once PR #21 lands if there's interest in reviewing that.

cc @GuillaumeGomez

Well, it's up to you @antoyo :)

We prefer to have everything in the gtk-rs organization.
So, please open PRs to include your contributions.
Thank you.

JavaScriptCore isn’t a part of gtk, so I don’t see why that needs to be the case. I don’t plan to submit PRs.

If the concern is actually about making sure there's an active maintainer, I'm more than happy to add other people to the organization that my crates are in.

We prefer to keep everything related to GNOME libraries in the gtk-rs organization.
So, I'm closing this issue.


need schema for mongodb/mongoose

can we have schema from JSON object to mongoose for mongodb ?

I don't know what this means. Please reopen with more information and examples.


docker-storage-setup: Enforce storage driver to be devicemapper

Fixes issue #26
Right now docker-storage-setup creates storage options which are valid
only for devicemapper driver. If some other driver is trying to initialize
and it is not properly written it will return error saying unrecognized
options dm.fs etc.
I am running into this issue now. Recently upstream has added zfs as
graphdriver and that takes precedence over devicemapper. And that driver
is returning error that dm.fs is unrecognized option.
Given that docker-storage-setup is expecting docker to use devicemapper
graphdriver and generating options which only work with devicemapper,
it makes sense to enforce the driver to use here to avoid errors.
Signed-off-by: Vivek Goyal<EMAIL_ADDRESS>

Initiating press of big green button in 3...2...1...


[REQ] Authentication using username/password

Is your feature request related to a problem? Please describe.
We are currently using Powershell module to interact with PowerBI service, we have special technical accounts created for deployment purposes and we cannot simply switch to SPN at the moment.
Describe the solution you'd like
Implement username/password authentication mechanism similar to Powershell implementation.
Describe alternatives you've considered
I've tried to connect via az login without luck, so I suspect it is not fully support this login scenario.
Additional context
Powershell command that able to authenticate using username/password : Connect-PowerBIServiceAccount
Code for authentication using username/password in ConnectPowerBIServiceAccount.cs
Snippet how it works now:
$passwd = "hello world!" | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential($user, $passwd)

$login = Connect-PowerBIServiceAccount -Credential $credential

Thanks for raising this enhancement and I will implement it in the upcoming release, the same way as Azure CLI has it:
pbicli login -u <username> -p <password> https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli#sign-in-with-credentials-on-the-command-line

Thanks for raising this enhancement and I will implement it in the upcoming release, the same way as Azure CLI has it: pbicli login -u <username> -p <password> https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli#sign-in-with-credentials-on-the-command-line

Has the -u and -p parameters been implemented? I tried it and it gets an error saying -u not recognized.

Sorry, but not yet. Hopefully, I find some time to implement in the coming weeks.

Sorry, but not yet. Hopefully, I find some time to implement in the coming weeks.

Thx I think this would be a great addition. Also, maybe also a way to encrypt the password to pass to the -p parameter.


Multiscales bug

Seems like a scale level is being skipped? My expectation for this example is scale levels with sizes 512, 256, 128, and 64. But scale3 is 32. ome_ngff_zarr.zarr/.zattrs also shows voxel spacings of: 1, 2, 4, 16 - so consistent with the voxel grid sizes - but not what I thought I would get.

It looks like this line is the culprit:
https://github.com/thewtex/ngff-zarr/blob/10cd1587d8134d6213009f0382976fdae97e9245/ngff_zarr/methods/_support.py#L7
I'm not sure this is the right logic.
It also raises a bigger question for me. The way this is written implies to me that to produce scale level N, we downsample scale level N-1. I'm assuming this because the result_scale_factors values here are (supposed to be) relative to the previous scale level. But, isn't it best to always be resampling from the full resolution data? Otherwise you have a series of interpolations composed together which gradually reduces fidelity to the original data.
I also don't think resampling from the full resolution input is any slower than from one scale level up, at least in principle. A linear interpolation is always a weighted average of 8 values for example.
Is this a smoothing thing? I know when you go to progressively lower sampling rates you have to smooth to prevent aliasing. I guess it's much faster to smooth the intermediate scale levels. I don't want to distract from the multiscales calculation bug too much, but I've never built an image pyramid maker like this so I don't know what is best practice. @d-v-b What do you think?

Based on my experience over in xarray-multiscale, it's much faster to use scaleX as the input for scaleX+1, and better for memory use too, especially if you are working with chunked data. Imagine the difference in intermediate memory consumption between downsample_by_2(downsample_by_2(downsample_by_2(data))) vs downsample_by_8(data)
re artifacts: first, I think for any linear smoothing + resampling procedure (e.g., gaussian), you don't accumulate artifacts while iteratively downsampling as long as you avoid intermediate typecasting. (For nonlinear smoothing like the windowed mode this no longer holds)... but more importantly, generally people don't care about the details of the low-res images anyway  (this would change if people routinely used the low-res scale data as input for analysis).

This package does have nearest neighbor and windowed mode options for downsampling. Personally, I prefer the docstrings for these options to acknowledge the increasing possibility of aliasing or other artifacts for the smaller scale levels. I agree at face value it's bad practice to use the down sampled scale levels for any analysis - but there's plenty of bad practice out there. Best to have a disclaimer for such things. @thewtex Completely up to you of course.

@GFleishman While theoretically, yes, more accurate results will be produced by applying the anti-aliasing filter directly for the downsampling scale desired then sampling. As @d-v-b pointed out, though, the computational expense makes that strategy not feasible in practice. We are then processing a terabyte volume to produce a downsampled volume that is less than a megabyte. Also, the domain of the region to produce an output voxel across these large scales is extremely large, which introduces memory-usage challenges.
I did some research and personal experimentation on this topic (unfortunately I do not have references readily available). It turns out that of the factors:

The anti-aliasing filter
Recursive vs direct downsampling
The interpolation method

for the creation of multi-scale filters, the anti-aliasing filter is, by far, the critical factor (and guassian filtering is the best), and recursive vs direct downsampling or the interpolation method result in negligible differences in the multiscale result.
This is easy to reproduce and examine with your own data. Take a large dataset and use ngff-zarr with scale factors: [2, 4, 8, 16] and compare the result to [16,]. And compare anti-aliasing filters (Method's) and hack interpolation methods.
@GFleishman yes, you are right we should make the strategy clear in our documentation. We need better documentation in general :-) -- I will get started on our ReadTheDocs.


COCO first release: Base container runtime

Container image with custom containerd (or crio)  if required
This is mainly a packaging effort and small
Sub issues that we must track before we consider this effort done:

[x] https://github.com/kata-containers/kata-containers/pull/4513
[x] https://github.com/kata-containers/tests/issues/4875
[x] https://github.com/kata-containers/kata-containers/issues/4489
[x] https://github.com/fidencio/container-engine-for-cc-payload/issues/1
[ ] ...

This has been done as part of https://github.com/fidencio/container-engine-for-cc-payload
We may need to update containerd to a newer version, as soon as https://github.com/kata-containers/kata-containers/pull/4490 gets merged.
For this task I don't think we need a specific CI, as this will be tested end-to-end and this solution should be temporary till we rely on upstream containerd, as soon as it's out.

quay.io/confidential-containers/container-engine-for-cc-payload:2022062810351656405327 is the image containing an up-to-date version of the patched containerd (based in containerd's official v1.6.6 release).


allow developer to set headers like x-ios-bundle-identifier to enable us to secure our google maps api keys when using google_maps_flutter

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
I want to secure our google maps api keys but in order to follow the guide of google I need to set some extra headers which is not possible right now when using google_maps_flutter
Proposal
allow developer to set extra headers when using google_maps_flutter

@leeflix
Can you elaborate on your use case with an example so that we'll have clear understanding of the proposal ?

we would like to follow googles advise on restricting our api keys since they are part of of the app and can be extracted with little effort
https://developers.google.com/maps/api-security-best-practices#restricting-api-keys
in order for the google maps api to accept these restricted keys we need to send some additional headers in the request according to the docs:
https://cloud.google.com/docs/authentication/api-keys?hl=de&_ga=2.127072461.-1715637411.1698742988&_gac=1.19912394.1698743158.Cj0KCQjwy4KqBhD0ARIsAEbCt6hkwsr2V0q1Hg57lzEzifJlBi08Bjc36X8TesJHUJtvHW_-rp8vkngaAo7jEALw_wcB#ios
because there is no way of adding headers to the requests send to the google maps api by the google_maps_flutter plugin and because we would like to continue using the plugin we need a way to add headers or at least these headers (android also needs two additional headers)

What APIs are you calling that require manually setting headers? In general the Google Maps SDK is issuing requests internally, and should be managing any restrictions internally.

here you can see that google instructs us to send additional headers to the google maps api in order to protect our api keys

Yes, I read that documentation, which would be relevant to any code manually constructing web requests to the API. What google_maps_flutter API(s) are you calling that construct requests manually and thus need the ability to set headers?

I am using the GoogleMap widget (https://pub.dev/documentation/google_maps_flutter/latest/google_maps_flutter/GoogleMap-class.html) which I assume makes api requests under the hood where I can't set headers

so how are we supposed to use the google maps plugin while following googles best practices to use restricted api keys?

The same way you would use it without a restricted API key. Per my comment above, if that does not work please file an issue with details.


Update 2.x.md

[ ] I have registered the PR changes.

Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?

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

cc. @ xingfudeshi


Indentation rule for libnabo?

I couldn't find any specification on this matter and the current state reflects some shift away from the original tab indentation.
Before things get worse this should be clarified for some future. Hence, this issue.
The majority of the files currently and the history of the mixed files clearly is in favour of tab indentation in all source files.
It seems to me, it is @stephanemagnenat who should decide this, unless he wants to open this question for discussion.

I just finished to watch Silicon Valley season 3 and this scene seems very relevant:
https://www.youtube.com/watch?v=SsoOG6ZeyUI
That being said, if I recall well the idea was to keep it relax on those rules as long as it is consistent within one subblock and that it is readable (yeah, I know, those latin people...). In the event that it was going out of control, we would use a script to reformat.
So it's up to you guys if you want to formalize a set of rules and enforce them. @stephanemagnenat won't hold anybody responsible for that ;)

I'm in holidays now, I'll have a look and thought in two weeks. Can we wait until then?

Nabo uses tabs so we should stick to this if we want to make it project
wide consistent. Otherwise please make it consistent within this file and
we can take a pass later to reformat all of it if desired.
On Wed, Aug 3, 2016, 22:34 Stéphane Magnenat<EMAIL_ADDRESS>wrote:

I'm in holidays now, I'll have a look and thought in two weeks. Can we
wait until then?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ethz-asl/libnabo/issues/54#issuecomment-237364071,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA7AgbIQE9pe6vZ5xFsWjK-zSVN1aFtKks5qcPtAgaJpZM4JZZqb
.

Thanks for the link @pomerlef - that made your point quite clear :).
@stephanemagnenat , sure this can wait - nothing is blocked! Have a nice vacation!
@simonlynen , it's merged already - somehow consistent. With all possible further actions concerning white spaces I'd just wait for this issue being settled.

I agree we should stick with tabs. When I wrote nabo, I used indentation with tabs with 4 spaces for a tab in the editor. We should probably set modelines for this style for common editors.

PR #55 should clean up most of the so far grown white space chaos. Any objections?

Closing this after merging #55.


Wiki Updater Git Error

Azure DevOps Extension you are using
Wiki Updater
Where are you running it?

Azure DevOps Server (on-premise TFS, if so what version)

Version of Extension/Task
currently public version
Error:
2020-04-17T16:27:10.6272206Z ##[section]Starting: Git based WIKI Updater
2020-04-17T16:27:10.6412544Z ==============================================================================
2020-04-17T16:27:10.6412641Z Task         : Git based WIKI Updater from Black Marble
2020-04-17T16:27:10.6412682Z Description  : A tools to update or create a WIKI based in a Git repo
2020-04-17T16:27:10.6412723Z Version      : 1.8.7
2020-04-17T16:27:10.6412759Z Author       : Richard Fennell
2020-04-17T16:27:10.6412800Z Help         : Version: 1.8.7. More Information
2020-04-17T16:27:10.6412836Z ==============================================================================
2020-04-17T16:27:11.0491566Z Variable: Repo [qtsnasazdops01/DefaultCollection/BeneFACT%20Legacy%20Code/_git/BeneFACT-Legacy-Code.wiki]
2020-04-17T16:27:11.0491874Z Variable: Filename [Releases.md]
2020-04-17T16:27:11.0492197Z Variable: Contents [null]
2020-04-17T16:27:11.0492469Z Variable: Commit Message [Release Notes]
2020-04-17T16:27:11.0492946Z Variable: Git Username [lisa baker]
2020-04-17T16:27:11.0493121Z Variable: Git Email<EMAIL_ADDRESS>2020-04-17T16:27:11.0493172Z Variable: Use Agent Token [true]
2020-04-17T16:27:11.0493393Z Variable: Replace File [true]
2020-04-17T16:27:11.0493701Z Variable: Append to File [false]
2020-04-17T16:27:11.0493983Z Variable: Username [nasco\lbaker]
2020-04-17T16:27:11.0494116Z Variable: Password [nlzeewxtwbup662ssqcc5mds6ni2tfo3dpqp5kkdeudnlc75cgta]
2020-04-17T16:27:11.0494332Z Variable: Localpath [G:\Agents\Agent.2019.1_work\r1\a\repo]
2020-04-17T16:27:11.0494455Z Variable: Data Is File [true]
2020-04-17T16:27:11.0494825Z Variable: SoureFile [G:\Agents\Agent.2019.1_work\r1\a\releasenotes.md]
2020-04-17T16:27:11.0495050Z Variable: Tag Repo [false]
2020-04-17T16:27:11.0495138Z Variable: Tag [null]
2020-04-17T16:27:11.0495384Z Variable: InjectExtraHeader [false]
2020-04-17T16:27:11.0495692Z Using OAUTH Agent Token, overriding username and password
2020-04-17T16:27:11.0500136Z SYSTEMVSSCONNECTION exists true
2020-04-17T16:27:11.0691639Z URL used
2020-04-17T16:27:11.0693404Z Cleaned G:\Agents\Agent.2019.1_work\r1\a\repo
2020-04-17T16:27:11.0880524Z ##[error]Error: Error: spawn git ENOENT
2020-04-17T16:27:11.0888638Z     at exports._errnoException (util.js:1018:11)
2020-04-17T16:27:11.0888740Z     at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
2020-04-17T16:27:11.0888792Z     at onErrorNT (internal/child_process.js:367:16)
2020-04-17T16:27:11.0888858Z     at _combinedTickCallback (internal/process/next_tick.js:80:11)
2020-04-17T16:27:11.0888946Z     at process._tickCallback (internal/process/next_tick.js:104:9)
2020-04-17T16:27:11.0888992Z     at Module.runMain (module.js:606:11)
2020-04-17T16:27:11.0889033Z     at run (bootstrap_node.js:390:7)
2020-04-17T16:27:11.0889084Z     at startup (bootstrap_node.js:150:9)
2020-04-17T16:27:11.0889141Z     at bootstrap_node.js:505:3
2020-04-17T16:27:11.0889397Z ##[error]Error: Error: spawn git ENOENT
2020-04-17T16:27:11.0889567Z     at exports._errnoException (util.js:1018:11)
2020-04-17T16:27:11.0889978Z     at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
2020-04-17T16:27:11.0890091Z     at onErrorNT (internal/child_process.js:367:16)
2020-04-17T16:27:11.0890178Z     at _combinedTickCallback (internal/process/next_tick.js:80:11)
2020-04-17T16:27:11.0890260Z     at process._tickCallback (internal/process/next_tick.js:104:9)
2020-04-17T16:27:11.0890337Z     at Module.runMain (module.js:606:11)
2020-04-17T16:27:11.0890430Z     at run (bootstrap_node.js:390:7)
2020-04-17T16:27:11.0890512Z     at startup (bootstrap_node.js:150:9)
2020-04-17T16:27:11.0890558Z     at bootstrap_node.js:505:3
2020-04-17T16:27:11.0890866Z     at exports._errnoException (util.js:1018:11)
2020-04-17T16:27:11.0890943Z     at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
2020-04-17T16:27:11.0891943Z     at onErrorNT (internal/child_process.js:367:16)
2020-04-17T16:27:11.0891995Z     at _combinedTickCallback (internal/process/next_tick.js:80:11)
2020-04-17T16:27:11.0892046Z     at process._tickCallback (internal/process/next_tick.js:104:9)
2020-04-17T16:27:11.0892092Z     at Module.runMain (module.js:606:11)
2020-04-17T16:27:11.0892159Z     at run (bootstrap_node.js:390:7)
2020-04-17T16:27:11.0892205Z     at startup (bootstrap_node.js:150:9)
2020-04-17T16:27:11.0892246Z     at bootstrap_node.js:505:3
2020-04-17T16:27:11.0893401Z ##[section]Finishing: Git based WIKI Updater

I have "allow oath" set to true; i have use buildagent set to true;

Not sure of the issue off the top of my head. I will have to spin up a Azure DevOps Server VM locally and give it a test.

ok. thanks

Ok remember this solution to this issue, and tested it on a default install Azure DevOps Server 2019.1.
You need to select

Allow access to OUATH for the agent phase
Make sure the Project Collection Build User has contribute rights to the WIKI
UseAgentToken enabled
injectExtraHeader is enabled

The injectExtraHeader flag was added to address issue issue such as this (See #613)
This seems to work, but does assume that the server is accessed via HTTPS as this is hard coded for the URL in the task..
If you only have your server using HTTP this will fail as the task will always try to swap to HTTPS
The YAML is
- task: richardfennellBM.BM-VSTS-WIKIUpdater-Tasks.WikiUpdaterTask.WikiUpdaterTask@1
  displayName: 'Git based WIKI Updater'
  inputs:
    repo: 'tfs2019.mydomain.com/tfs/DefaultCollection/Test1/_git/Test1.wiki'
    filename: page.md
    contents: '$(build.buildnumber)'
    message: 'A commit message'
    gitname: dummy
    gitemail: 'dummy@domain
    useAgentToken: true
    injectExtraHeader: true

Let me know if that works for you, if it does I will update the documentation to make it a little clearer

I have just update the documentation for this task. Hopefully that is a bit clearer

As per my standard practice I am closing this issue as I have heard nothing for a while. If this issue remains a problem please do not hesitate to re-open it

Thanks Richard.
I was missing the "injectextraheader". it's working now.  Great tool. thanks again


Tried to simplify the code a little

Did a little code cleanup to make the code a little more readable, and DRY it up a little.

1 Error

:no_entry_sign:
Please include a CHANGELOG entry.
You can find it at CHANGELOG.md.

2 Warnings

:warning:
Author @jeroenvisser101 is not a contributor

:warning:
Tests were not updated

  Generated by :no_entry_sign: danger

Awesome. Much cleaner!

Great! You wanna :shipit:?

Thanks!


Add ability to provide generic for the internal type of the TextAnnotator

Current State
Currently, the TextAnnotator allows to provide a generic only for the external type:
https://github.com/recogito/text-annotator-js/blob/3f587dd752084f3f6c291dec0577e01afb2d1e4d/packages/text-annotator/src/TextAnnotator.ts#L13
And everywhere in the following code, only the TextAnnotation is hard-binded
Issue
When a user (me 😅) wants to extend the TextAnnotator with some plugin that might mutate the TextAnnotation with additional properties - I'm pretty much out of luck... Because the TextAnnotator, TextAnnotatorState, are strictly bound to the R6O TextAnnotation type.
The one option is to define the .d.ts file and override the TextAnnotation there. But it creates inconvenient indirectness and maintainers will have questions...
However, another better alternative is to make the TextAnnotator look something like this:
export interface TextAnnotator<I extends TextAnnotation = TextAnnotation, E extends unknown = TextAnnotation> extends Annotator<I, E> {

  element: HTMLElement;

  // Returns true if successful (or false if the annotation is not currently rendered)
  scrollIntoView(annotation: I): boolean;

  state: TextAnnotatorState<I>;

}

In that way - lib consumers can safely describe the extended internal types. And then simply use the typed useAnnotator and useAnnotatorStore hooks

I also tried following the RecogitoTEIAnnotator example:
https://github.com/recogito/text-annotator-js/blob/3a70b9ef5cafec4b54ed629e934e5875d6f06262/packages/extension-tei/src/TEIPlugin.ts#L34-L36
But I think that using the extends Annotator for the plugin that works with the TextAnnotator won't be a precise type depiction. Because the latter overrides some of the lifecycle methods of the store (addAnnotation, getAnnotationBounds, etc.) and the Annotator won't have any of them!
Instead, I would like to be able to use the TextAnnotator type directly with a slightly updated internal model. Which cannot be done at the moment 🤷🏻♂


Test TaterLib with jumploader

https://www.curseforge.com/minecraft/mc-mods/jumploader

But It now is deprecated and useless. Why you need to test it?

I mainly want to test to see if there's issues with TaterLib's platform detection and multi-loader startup.
Also for completionist purposes.


Higher order derivatives of norm.logcdf seem to have numerical problems at low input values

Hi there,
I think I might have found a problem while investigating https://github.com/google/jax/issues/475 (though still checking!).
It looks like second derivatives of the logcdf and higher have problems for small input values (<-10) -- see reproducible code below:
import os
os.environ['XLA_FLAGS'] = '--xla_cpu_enable_fast_math=false'
import jax.numpy as np
from jax.scipy.stats import norm
from jax import grad, vmap

x_vals = np.linspace(-30, 20, 100)
first_grad = vmap(grad(norm.logcdf))(x_vals)
second_grad = vmap(grad(grad(norm.logcdf)))(x_vals)
third_grad = vmap(grad(grad(grad(norm.logcdf))))(x_vals)

count_nans = lambda x: int(np.sum(np.isnan(x)))

print(f'Found {count_nans(first_grad)} NaNs in first derivative.')
print(f'Found {count_nans(second_grad)} NaNs in second derivative.')
print(f'Found {count_nans(third_grad)} NaNs in third derivative.')

Output is:
Found 0 NaNs in first derivative.
Found 40 NaNs in second derivative.
Found 42 NaNs in third derivative.

I need derivatives up to third order and have been able to get around the issue by defining the ratio:
def pdf_cdf_ratio(x):
    return np.exp(norm.logpdf(x) - norm.logcdf(x))

Which is the gradient of the logcdf (subtracting and then exponentiating is much more stable than computing the ratio directly). You can express the second and third derivatives in terms of the ratio. Here's the full code:
def pdf_cdf_ratio(x):
    return np.exp(norm.logpdf(x) - norm.logcdf(x))

def pdf_cdf_ratio_grad(x):

    g = pdf_cdf_ratio(x)
    return -g * (x + g)

def pdf_cdf_ratio_grad_grad(x):

    g = pdf_cdf_ratio(x)
    gp = pdf_cdf_ratio_grad(x)

    return -gp * (x + g) - g * (1 + gp)

With these alternatives, I get:
first_grad_alt = pdf_cdf_ratio(x_vals)
second_grad_alt = pdf_cdf_ratio_grad(x_vals)
third_grad_alt = pdf_cdf_ratio_grad_grad(x_vals)

count_nans = lambda x: int(np.sum(np.isnan(x)))

print(f'Found {count_nans(first_grad_alt)} NaNs in first derivative.')
print(f'Found {count_nans(second_grad_alt)} NaNs in second derivative.')
print(f'Found {count_nans(third_grad_alt)} NaNs in third derivative.')

Found 0 NaNs in first derivative.
Found 0 NaNs in second derivative.
Found 0 NaNs in third derivative.

Mind you, plotting the functions, although it has no nans, it looks like the third gradient gets pretty wonky below values of -10, so maybe there's a better alternative.
Anyway, I'm not sure what to do to fix this with autodiff, and whether that's even possible, but thought I'd raise this as a possible problem!

It may also be of interest (apologies if not!) that autograd doesn't have this problem:
import autograd.numpy as np
from autograd.scipy.stats import norm
from autograd import elementwise_grad

inputs = np.linspace(-50, 20, 100)

fun = norm.logcdf
grad_fun = elementwise_grad(fun)
grad_grad_fun = elementwise_grad(grad_fun)
grad_grad_grad_fun = elementwise_grad(grad_grad_fun)

f = fun(inputs)
fp = grad_fun(inputs)
fpp = grad_grad_fun(inputs)
fppp = grad_grad_grad_fun(inputs)

[np.any(np.isnan(x)) for x in [f, fp, fpp, fppp]]

Gives:
[False, False, False, False]

And the plots actually look nicer than what my ratio trick gives, so it seems to have a nice solution there. Looks like there, the vjp is defined in terms of the ratio:
https://github.com/HIPS/autograd/blob/master/autograd/scipy/stats/norm.py
Sorry if this was all obvious already, but I thought I'd add this information in case it's helpful!

Our guess is that differentiating the (rather complicated!) implementation of log_ndtr isn't working that well, and that problem can be fixed by adding a derivative that treats log_ndtr as a black box, much like autograd does.


Attempts to make build work on Windows

Copy of #335, Travis seemed to be stuck on an old ref...
Update Premake in Travis and AppVeyor to alpha12 and fix premake5.lua. Also ensure we treat warnings as errors.
This ought to fail because of #318.

This is the wrong branch, oops...