Investigate what updates are needed to support new upstream jdk release branching model

Described in https://github.com/adoptium/temurin-build/issues/3841 the upstream jdk repositories now have a different branching scheme.  We need to investigate what is needed to support this in aqa-tests code/scripts.
Files that will likely need updates:

https://github.com/adoptium/aqa-tests/blob/master/openjdk/build.xml
https://github.com/adoptium/aqa-tests/blob/master/testenv/testenv.properties
https://github.com/adoptium/aqa-tests/blob/master/scripts/testenv/checkTags.sh

Any others?

jdk23 test job failures for openjdk group of tests:
15:37:15  getOpenjdk:
15:37:15       [echo] Using user specified repo and branch
15:37:15       [exec] info: Could not add alternate for '/home/jenkins/openjdk_cache': reference repository '/home/jenkins/openjdk_cache' is not a local repository.git clone --depth 1 -q --reference-if-able /home/jenkins/openjdk_cache -b jdk-23+28_adopt https://github.com/adoptium/jdk23 openjdktemp
15:37:15       [exec]
15:37:15       [exec] error code: 128. Sleep 300 secs, then retry 1...
15:37:15       [exec] fatal: could not read Username for 'https://github.com/': No such device or address
15:42:26       [exec] check for openjdktemp. If found, the file will be removed.
15:42:26       [exec] git clone --depth 1 -q --reference-if-able /home/jenkins/openjdk_cache -b jdk-23+28_adopt https://github.com/adoptium/jdk23 openjdktemp
15:42:26       [exec] info: Could not add alternate for '/home/jenkins/openjdk_cache': reference repository '/home/jenkins/openjdk_cache' is not a local repository.
15:42:26       [exec] error code: 128. Sleep 300 secs, then retry 2...
15:42:26       [exec] fatal: could not read Username for 'https://github.com/': No such device or address
15:47:20       [exec] check for openjdktemp. If found, the file will be removed.
15:47:20       [exec] git clone --depth 1 -q --reference-if-able /home/jenkins/openjdk_cache -b jdk-23+28_adopt https://github.com/adoptium/jdk23 openjdktemp
15:47:20       [exec] info: Could not add alternate for '/home/jenkins/openjdk_cache': reference repository '/home/jenkins/openjdk_cache' is not a local repository.
15:47:20       [exec] error code: 128. Sleep 300 secs, then retry 3...
15:47:20       [exec] fatal: could not read Username for 'https://github.com/': No such device or address
15:52:16       [exec] check for openjdktemp. If found, the file will be removed.
15:52:16       [exec] git clone --depth 1 -q --reference-if-able /home/jenkins/openjdk_cache -b jdk-23+28_adopt https://github.com/adoptium/jdk23 openjdktemp
15:52:16       [exec] info: Could not add alternate for '/home/jenkins/openjdk_cache': reference repository '/home/jenkins/openjdk_cache' is not a local repository.
15:52:16       [exec] error code: 128. Sleep 300 secs, then retry 4...
15:52:16       [exec] fatal: could not read Username for 'https://github.com/': No such device or address
15:57:26       [exec] info: Could not add alternate for '/home/jenkins/openjdk_cache': reference repository '/home/jenkins/openjdk_cache' is not a local repository.
15:57:26       [exec] check for openjdktemp. If found, the file will be removed.
15:57:26       [exec] git clone --depth 1 -q --reference-if-able /home/jenkins/openjdk_cache -b jdk-23+28_adopt https://github.com/adoptium/jdk23 openjdktemp
15:57:26       [exec] error code: 128. Sleep 300 secs, then retry 5...
15:57:26       [exec] fatal: could not read Username for 'https://github.com/': No such device or address
16:02:21       [exec] check for openjdktemp. If found, the file will be removed.
16:02:21       [exec] git clone --depth 1 -q --reference-if-able /home/jenkins/openjdk_cache -b jdk-23+28_adopt https://github.com/adoptium/jdk23 openjdktemp
16:02:21       [exec] info: Could not add alternate for '/home/jenkins/openjdk_cache': reference repository '/home/jenkins/openjdk_cache' is not a local repository.
16:02:21       [exec] fatal: could not read Username for 'https://github.com/': No such device or address

This issue is addressed by https://github.com/adoptium/ci-jenkins-pipelines/pull/1053


Design Suggestion: Reconsider eml.ml approach

(Interestingly on the issue with ocaml-lsp not working well in Dream, someone else has already filed a ticket https://github.com/aantron/dream/issues/155 )
Thank you for this important and substantial open source contribution to the OCaml ecosystem! Thanks especially for the great documentation and many many examples too!
I had some comments on the *.eml.ml in the Dream framework:

I personally place a lot of emphasis on the LSP server “understanding” everything in the ml file. I will gladly pay a small price in using a templating language that places nice with the OCaml LSP server. My guess is that a lot of beginners would prefer to have a LSP server that does not stop working in certain sections of their code – that is likely to be confusing and a net negative for them. Yes, using something like tyxml is a few extra steps but to me is a still worth the effort. The average OCaml beginner tends to be reasonably sophisticated and should be OK with tyxml. As you already would know – tyxml [%html] section allows variable interpolation and ocaml lsp server continues to work properly. Even in tyml jsx, ocaml-lsp-server works.
While you gain some simplicity in source code using Dream specific templating you need to have a special dune rule to convert the eml.ml → ml which affects some of the beginner friendliness that I guess you’re aiming for

In brief, while I see your point in using the eml.ml approach I think the gains are mixed at best. I also notice that you have painstakingly pointed out that the eml.ml approach is purely optional and never compulsory anywhere. But the point is that this pattern is everywhere on the Dream website so it seems like it is the recommended approach.
My personal suggestion would be to put the tyxml approach front and center in the Dream framework examples. It plays nice with the ecosystem and does not add a “quirk” or unnecessary customization. People value cohesiveness with the broader OCaml ecosystem. Alternatively, dream framework can add its own tyxml like ppx.
What is your opinion about this design suggestion? Would be awesome to understand your opinion on this issue.
BTW Its cool if you feel that the current approach makes sense. In that case please feel free to close this ticket. I just wanted to spark a discussion as I feel that it might be too late to make such a significant change in the future.
P.S. I also added this point on https://discuss.ocaml.org/t/dream-a-simple-yet-feature-complete-web-framework/7909/8 but that was an old-ish thread so its possible you haven't seen it.

I personally place a lot of emphasis on the LSP server “understanding” everything in the ml file.

The main suggestion here in the short term is to use .eml.html files, as I also just suggested in the related issue https://github.com/aantron/dream/issues/155. I don't know yet how to make this more prominent in the examples, as .eml.ml files are just too convenient and concise not to use them in most examples :)

The average OCaml beginner tends to be reasonably sophisticated and should be OK with tyxml.

I've had feedback both in agreement and not with this statement, including some from beginners that would have been intimidated if examples used mainly TyXML. The examples are also not aimed at an average OCaml beginner as at least I imagine them to be today. The examples are partially aimed at beginners that OCaml might have, if OCaml libraries were easier to use than they tend to be, and required less sophistication to get started with (I don't fully agree with the choice of "sophistication" for the meaning of my sentence here, it's a bit of a different meaning from that in the sentence I am quoting).
In addition, the examples are aimed at users like me (not beginners). I prefer to use "literal" templates to TyXML. Note that I am not in any way "against" TyXML, and have been a user of it and contributor to it as well.

While you gain some simplicity in source code using Dream specific templating you need to have a special dune rule to convert the eml.ml → ml which affects some of the beginner friendliness that I guess you’re aiming for

This is true. In comparison with using TyXML, however, TyXML still requires a (preprocess ...) stanza. It's not as ugly as the eml rule, but it partially offsets the annoyance of editing dune files for eml.

Thanks for documenting your experience!
I assume you're referring to https://ocsigen.org/tyxml/latest/manual/jsx right? Just so I understood you correctly, one would need to write your template code into a .re file, correct? Or are you envisaging another way of using the jsx ppx?
(And yes, the jsx syntax is very nice and intuitive. However I've only seen it be used in reason files).

@tmattio Thanks for detailed note.

Unfortunately, it won't be as exhaustive as Merlin: only the first error of the file will be reported, as Dune (and the compiler) are only able to give the first error.

Can you give an example of this? Lets say I have a snippet of eml in my OCaml file. Right now what merlin does is that it gives me a lot of errors where the eml is but then "recovers" and does an acceptable job for the code following the eml snippet. This makes emls painful but not entirely a showstopper.
Once dune 3.0 comes out will this behavior regress? Will I continue getting helpful pointers from the the lsp later in my file? In other words, the new behavior of dune 3.0 + merlin is not clear to me in your note. Also isn't dune already integrated with merlin via the dot merlin reader?

Once dune 3.0 comes out will this behavior regress?

No, the integration with Dune 3.0 will only provide additional diagnostics (coming from the compiler), but will not interfere with the current Merlin diagnostics.
I'll let LSP maintainers communicate on this when they are ready, I just wanted to give some ideas of what the solutions could be to support .eml files in the editors going forward, and a heads up that the syntax will probably come in VSCode in the coming months 🙂

Would it perhaps be possible to split the file before serving to the LSP/merlin? I believe this is how Razor pages in c# work as described here https://devblogs.microsoft.com/aspnet/new-experimental-razor-editor-for-visual-studio/

I'm working on a solution to this, as far as language server support. Should have a prototype available soon.


Why is vibrate key taking in a double?

https://github.com/evollu/react-native-fcm/blob/a164f490c3eb10812bb855d848c124aaf04a8acc/android/src/main/java/com/evollu/react/fcm/FIRLocalMessagingHelper.java#L159
@evollu
Why is vibrate taking in a double instead of an integer? If that is the case, README should be updated: vibrate to 300.0 instead of 300.

just because DEFAULT_VIBRATION is a long so it can be defaultValue without conversion.
plus passing 300 in javascript seems to work fine


Add support for a YAML concat tag/extension

I would like to propose adding support for a YAML concat tag/extension to allow simple concatenation of YAML alias values.
For example, given a valid YAML values.yaml file like:
server:
  host: &server_host test.com
  port: &server_port 1234

service1:
  host: *server_host
  port: *server_port

service2:
  endpoint: !concat [ *server_host, ":", *server_port ]

The final values.yaml file ingested by helm would become:
server:
  host: test.com
  port: 1234

service1:
  host: test.com
  port: 1234

service2:
  endpoint: test.com:1234

This would enable minimal, YAML-compliant templating within a values.yaml file.

#2492 was proposed and eventually closed as something we do not plan to implement. See https://github.com/helm/helm/issues/2492#issuecomment-413635332 for more information on why we are deciding not to allow templating in values.yaml.
In a template, sprig provides the join function, which joins a list of strings into a single string, separated by a delimiter. list .Values.server.host .Values.server.port | join ":" would accomplish the task you are looking for.
Hope this helps.

This is not a request for general templating as #2492 proposed, but rather a request to support a much simpler YAML tag/extension which applies to a single YAML file.
In the original example, endpoint: !concat [ *server_host, ":", *server_port ] is valid YAML even if there is no concat tag/extension.
In the absence of a concat  tag/extension, the rendered YAML would be endpoint: [ "test.com", ":", "1234"]

I think this would have to be proposed upstream to https://github.com/kubernetes-sigs/yaml to add support for custom extensions.

I am marking this as closed. It would need to be added to the upstream YAML library, not to Helm


Remove notifications feature flag

Part of #11947
Acceptance

[ ] Ensure that notifications work without the feature flag active:

[ ] Send a notification from org panel
[ ] Check that it is received by a user
[ ] Check that it can be marked as read (open/close the bell notification list)

Deploy

Notify in https://github.com/CartoDB/docs/pull/1196, so the docs can be merged

I did not find any instance of the feature flag in frontend. Maybe @matallo can tell us if he added such a check. Next time, let's use a less generic name than "notifications" for feature flags 🙏, it makes it easier to make sure you did not forget anything when removing it.

here's one occurence https://github.com/CartoDB/cartodb/blob/master/app/views/admin/shared/_org_subheader.html.erb#L26

I feel there is no other place, so let's go! 💃

Unblocking since the FF is unrestricted anyway (my previous reasoning was bogus).


Retrieving a Block with a  PB component results in a 500 error

Magento version 2.3.x
Seems to correctly parse other PB components, but not the  one. The out-of-the-box API equivalent returns a 200, but isn't filtered:
ie.
{{widget type="Magento\CatalogWidget\Block\Product\ProductsList" template="Magento_CatalogWidget::product/widget/content/grid.phtml" anchor_text="" id_path="" show_pager="0" products_count="1" type_name="Catalog Products List" conditions_encoded="^[`1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Combine`,`aggregator`:`all`,`value`:`1`,`new_child`:``^],`1--1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Product`,`attribute`:`category_ids`,`operator`:`==`,`value`:`34`^]^]"}}

Any ideas why this would happen?

Hi @alecarg , thanks for opening the issue, could you please provide us with the exact version of Magento 2.3? is it 2.3.4? after that, we'll proceed with our internal tests.
Thanks in advance!

@jochhop Magento ver. 2.3.1
I didn't test this with a blank install; our products, attribute sets, etc. are customised, but everything is working fine when the  PB component renders in a block/page via. standard page load.

@alecarg Hi, could you please confirm, if your 500 error code logs a similar error to the below one:
Fatal error: Uncaught TypeError: Argument 2 passed to Magento\Catalog\Block\Product\ImageFactory::getLabel() must be of the type string, null given, called in vendor/magento/module-catalog/Block/Product/ImageFactory.php on line 169

The only error I saw was this one, which happened because I had a custom theme and I missed etc/view.xml file similar to this one: https://magento.stackexchange.com/a/287491
After adding it, the API endpoint worked correctly (it returned the HTML correctly parsed)
If it's not related in your case, could you please post here the error log reported in your Magento instance so we can continue with further checking?

Will try doing that asap @jochhop , thanks for your initial response

@alecarg Closing this issue as there's no response since 12 days go, if needed, please reopen it, thanks in advance


MPG123 x64 port issue

Building the x86 version works fine, but the x64-windows version fails to build. The vc solution that is used does not contain a build target for x64. Opening the solution in VS(2015) and adding a x64 target, then building in VS works fine, but vcpkg does not perform this. Bulding on Windows 7 x64, en-US locale, VS2015 Update 3.
Log files attached.
build-x64-windows-rel-out.txt
Output from vcpkg:
D:\WorkingFolder\git\vcpkg>vcpkg install mpg123:x64-windows
-- CURRENT_INSTALLED_DIR=D:/WorkingFolder/git/vcpkg/installed/x64-windows
-- DOWNLOADS=D:/WorkingFolder/git/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=D:/WorkingFolder/git/vcpkg/packages/mpg123_x64-windows
-- CURRENT_BUILDTREES_DIR=D:/WorkingFolder/git/vcpkg/buildtrees/mpg123
-- CURRENT_PORT_DIR=D:/WorkingFolder/git/vcpkg/ports/mpg123/.
-- Using cached D:/WorkingFolder/git/vcpkg/downloads/mpg123-1.23.3.tar.bz2
-- Testing integrity of cached file...
-- Testing integrity of cached file... OK
-- Extracting done
-- Applying patch D:/WorkingFolder/git/vcpkg/ports/mpg123/0001-Modify-2010-libmpg123.vcxproj-to-
use-VS-2015-along-w.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch D:/WorkingFolder/git/vcpkg/ports/mpg123/0001-Modify-2010-libmpg123.vcxproj-to-
use-VS-2015-along-w.patch done
-- Building D:/WorkingFolder/git/vcpkg/buildtrees/mpg123/src/mpg123-1.23.3/ports/MSVC++/2010/lib
mpg123/libmpg123.vcxproj for Release
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:14 (message):
Command failed: msbuild;D:/WorkingFolder/git/vcpkg/buildtrees/mpg123/src/mpg123-1.23.3/ports
/MSVC++/2010/libmpg123/libmpg123.vcxproj;/p:Configuration=Release_x86_Dll;/p:Platform=x64;/p:VCP
kgLocalAppDataDisabled=true;/p:UseIntelMKL=No;/m
Working Directory: D:/WorkingFolder/git/vcpkg/buildtrees/mpg123/x64-windows-rel
See logs for more information:
D:\WorkingFolder\git\vcpkg\buildtrees\mpg123\build-x64-windows-rel-out.log
D:\WorkingFolder\git\vcpkg\buildtrees\mpg123\build-x64-windows-rel-err.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_build_msbuild.cmake:53 (vcpkg_execute_required_process)
ports/mpg123/portfile.cmake:23 (vcpkg_build_msbuild)
scripts/ports.cmake:73 (include)
Error: building package mpg123:x64-windows failed
Please ensure sure you're using the latest portfiles with vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: mpg123:x64-windows
Vcpkg version: 0.0.72-edec017ecec2e2a8ad57a0b5ee660b59a9479aac
Additionally, attach any relevant sections from the log files above.

Were you able to successfully use the built DLLs after adding the configuration and building? In the vcxproj, it looks like there are a lot of lines in the PreLinkEvent like
cl /I "..\.." /EP /TC "$(ProjectDir)..\..\..\..\src\libmpg123\synth_stereo_sse_s32.S" /nologo > "$(ProjectDir)..\libmpg123\Release\synth_stereo_sse_s32.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "$(ProjectDir)..\libmpg123\Release\synth_stereo_sse_s32.o" "$(ProjectDir)..\libmpg123\Release\synth_stereo_sse_s32.asm"

that sound x86 specific.

Did a test, and that seem to work. Compiled the lib itself and the example program feedseek and used it on a mp3. Dumping the headers of the dll and exe show x64 machine arch. It is true there is a lot of x86 seemingly spesific yasm in the vcxproj file... don't know if they are used at all...
D:\WorkingFolder\git\vcpkg\buildtrees\mpg123\src\mpg123-1.23.3\ports\MSVC++\2010
\libmpg123\Release>dumpbin /headers libmpg123.dll
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.
Dump of file libmpg123.dll
PE signature found
File Type: DLL
FILE HEADER VALUES
8664 machine (x64)
7 number of sections
58ADA93F time date stamp Wed Feb 22 16:07:43 2017

D:\WorkingFolder\git\vcpkg\buildtrees\mpg123\src\mpg123-1.23.3\ports\MSVC++\2010
\libmpg123\Release>dumpbin /headers feedseek.exe
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.
Dump of file feedseek.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
8664 machine (x64)
9 number of sections
58ADAA28 time date stamp Wed Feb 22 16:11:36 2017
D:\WorkingFolder\git\vcpkg\buildtrees\mpg123\src\mpg123-1.23.3\ports\MSVC++\2010
\libmpg123\Release>feedseek 02-morph-in.mp3 fs.mp3
Note: Disabling all formats.
Note: Want to enable format 8000/3 for encodings 0x200.
Note: Want to enable format 11025/3 for encodings 0x200.
Note: Want to enable format 12000/3 for encodings 0x200.
Note: Want to enable format 16000/3 for encodings 0x200.
Note: Want to enable format 22050/3 for encodings 0x200.
Note: Want to enable format 24000/3 for encodings 0x200.
....

Supplementary, I find no evidence in the compile lot that any of the yasm (or assembly files) are actually used in any way, maybe they should, but the lib seems to work anyhow. Log attached.
libmpg123.txt

Please try to use port from #780

This works fine now, thank you.


Change Calendar Source

The calendar is defaulting to my Gmail account but I would like to use my outlook account.

Outlook Calendar needs a deeper integration with Microsoft services. I'll take a look.


TermsAggregation is missing shard_min_doc_count field

🐛 Missing type
The shard_min_doc_count property is missing from the Terms Aggregation API TermsAggregation.
Definition
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#search-aggregations-bucket-terms-shard-min-doc-count
PR for this was created almost a year ago, but since remain unnoticed https://github.com/elastic/elasticsearch-specification/pull/2175.

Closed with #2175


Missing cast prevents compilation under 32-bit MacOS and 32-bit FreeBSD

While implementing a CI solution for the hunter file manager, I've come across a bug in systemstat that prevents it from compiling under 32-bit BSD and 32-bit MacOS systems.
chrono::NaiveDateTime::from_timestamp() expects its secs parameter to always be an i64. However, in /src/platform/macos.rs:Platform:boot_time() and /src/platform/freebsd.rs:Platform:boot_time(), the tv_sec field of the libc::timeval struct is passed without casting it to an i64.
We're using the cross crate by the Rust Embedded Devices Working Group to build binaries for foreign architectures.
Here is the build log for 32-bit MacOS:
$ cross build --target i686-apple-darwin --release
info: downloading component 'rust-std' for 'i686-apple-darwin'
info: installing component 'rust-std' for 'i686-apple-darwin'
 51.5 MiB /  51.5 MiB (100 %)  12.4 MiB/s ETA:   0 s
   Compiling systemstat v0.1.4
error[E0308]: mismatched types
  --> /Users/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/systemstat-0.1.4/src/platform/macos.rs:65:68
   |
65 |         Ok(DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(data.tv_sec, data.tv_usec as u32), Utc))
   |                                                                    ^^^^^^^^^^^ expected i64, found i32
help: you can cast an `i32` to `i64`, which will sign-extend the source value
   |
65 |         Ok(DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(data.tv_sec.into(), data.tv_usec as u32), Utc))
   |                                                                    ^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

Here is the build log for 32-bit FreeBSD:
$ cross build --target i686-unknown-freebsd --release
info: downloading component 'rust-std' for 'i686-unknown-freebsd'
info: installing component 'rust-std' for 'i686-unknown-freebsd'
 62.9 MiB /  62.9 MiB (100 %)  13.9 MiB/s ETA:   0 s
Unable to find image 'japaric/i686-unknown-freebsd:v0.1.14' locally
v0.1.14: Pulling from japaric/i686-unknown-freebsd
Status: Downloaded newer image for japaric/i686-unknown-freebsd:v0.1.14
   Compiling systemstat v0.1.4
error[E0308]: mismatched types
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/systemstat-0.1.4/src/platform/freebsd.rs:109:68
    |
109 |         Ok(DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(data.tv_sec, data.tv_usec as u32), Utc))
    |                                                                    ^^^^^^^^^^^ expected i64, found i32
help: you can cast an `i32` to `i64`, which will sign-extend the source value
    |
109 |         Ok(DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(data.tv_sec.into(), data.tv_usec as u32), Utc))
    |                                                                    ^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

argh, the explicitness of conversions strikes again. Please make a pull request with the .into() as suggested by the compiler :)

By courtesy of @rabite0: PR #57 fix compilation on 32bit macOS/FreeBSD systems
Thanks :D!

Also, if you could release a new version with the fix that would be great. Currently, this issue prevents hunter from compiling on 32 bit mac/bsd systems. It would be nice if those worked out of the box.
To make your life easier I also updated the version for you. Since it's not possible to include tags in a pull request, that's probably the most I can do to help with this.
Thanks.

I've tested the patched master today and it works perfectly on both MacOS and FreeBSD, so I'll close this issue.


Refactor to separate code into packages and other small code improvements

@jsenko I'm testing this, and the first thing I notice is that reconcile loop is really slow now, operator takes quite a bit of time to respond and start creating the deployment, the ingress/route, ...

it looks we have a regression, Status part is not written by the operator

I have changes to contribute to this PR:
I fixed the watches leak and refactored again to improved the dependency management between functions and the control loop... I also tried to reduce the number of times the control loop is being triggered, there is still lot of work to do in that regard
There are still failures for:

control loop is being triggered by StatusCF infinitely, looks like writing the ApicurioRegistry CR status is not working, looks like the patching is not working
openshift's deploymentconfig ownerReference is not set
pod disruption budget throws some errors when created
we stil have to review cleanup
ocp route creation still have to be reviewed


ceedling help only shows 80 characters per line on Windows

When I try accessing the help using ceedling help with Ceedling version 0.31.1 it is always truncated at 80 characters with ... when done on Windows. I tried the same thing with Ubuntu where it seemed to work as expected and showed the whole text.
I think this is quite annoying as the help command is not very helpful in this case.
Example:
PS C:\Users\matt> ceedling version
Welcome to Ceedling!
    Ceedling:: 0.31.1
       CMock:: 2.5.4
       Unity:: 2.5.4
  CException:: 1.3.3

PS C:\Users\matt> ceedling help
Welcome to Ceedling!
Commands:
  ceedling example PROJ_NAME [DEST]  # new specified example project (in DEST...
  ceedling examples                  # list available example projects
  ceedling help [COMMAND]            # Describe available commands or one spe...
  ceedling new PROJECT_NAME          # create a new ceedling project
  ceedling upgrade PROJECT_NAME      # upgrade ceedling for a project (not re...
  ceedling version                   # return the version of the tools installed

@matrdr This is annoying, isn't it? The problem has to do with the minutiae of how Windows terminals handle width. I think we have a robust way to handle this now in Ceedling 1.0.0 (prerelease). We are using a Ruby library that queries terminal width and dynamically uses that to set Thor and Rake output width. That is, if you resize the width of your terminal, output will match it. If that functionality is unavailable (generally in certain Windows scenarios), the default is now a width of 120 characters as this seems a reasonable minimum on modern systems.
If this is not working properly for you, please reopen this issue.


Fatal Internal Error

Keep getting some kind of internal error in my node once in a while:

2021-11-06T14:19:09Z RIDB rollback to block height 1427851 success!
2021-11-06T14:19:09Z RIDB rollback to block height 1427850 success!
2021-11-06T14:19:09Z 700004: Transaction RI data Not Found (5e9305e3119f376eb5631e0eb52b3c270055575e4906f0edc9a2a4832fb07f5b)
2021-11-06T14:19:09Z ERROR: Failed find reindexer transaction part (5e9305e3119f376eb5631e0eb52b3c270055575e4906f0edc9a2a4832fb07f5b)
2021-11-06T14:19:09Z ERROR: ConnectTip: ConnectBlock 6f82d509e04ab96d4f585bf5c82b9de126aecec3aa6653ede850973f2aead46f failed, failed-find-rtransaction (code 96)
2021-11-06T14:19:09Z 700004: Transaction RI data Not Found (5e9305e3119f376eb5631e0eb52b3c270055575e4906f0edc9a2a4832fb07f5b)
2021-11-06T14:19:09Z ERROR: Failed find reindexer transaction part (5e9305e3119f376eb5631e0eb52b3c270055575e4906f0edc9a2a4832fb07f5b)
2021-11-06T14:19:09Z ERROR: ConnectTip: ConnectBlock c5b720b6efe8bbefe877496095d51f010d80d22faac539178a34b0096f7bbb10 failed, failed-find-rtransaction (code 96)
2021-11-06T14:19:20Z Available coins count 3351 BestHeader: 1427852 0bc2036b31afc6648e6c999ad360733cabbb27b41e199f3596941ddd64a29428
2021-11-06T14:19:29Z RIDB rollback to block height 1427851 success!
2021-11-06T14:19:29Z RIDB rollback to block height 1427850 success!
2021-11-06T14:19:31Z 700004: Transaction RI data Not Found (2bba2e99af9cb0a18e7b3011ff06df477bdb299718e20a185ef602e2a5c710b3)
2021-11-06T14:19:31Z ERROR: Failed find reindexer transaction part (2bba2e99af9cb0a18e7b3011ff06df477bdb299718e20a185ef602e2a5c710b3)
2021-11-06T14:19:31Z ERROR: ConnectTip: ConnectBlock 7829874dda0a177e544f2537b155c6dc2663b02c40bb0bea1e349ac919ce1f40 failed, failed-find-rtransaction (code 96)
2021-11-06T14:19:31Z ERROR: UndoReadFromDisk: Deserialize or I/O error 2 (25) - CAutoFile::read: end of file: iostream error
2021-11-06T14:19:31Z ERROR: DisconnectBlock(): failure reading undo data
2021-11-06T14:19:31Z ERROR: DisconnectTip(): DisconnectBlock c5b720b6efe8bbefe877496095d51f010d80d22faac539178a34b0096f7bbb10 failed
2021-11-06T14:19:31Z *** Failed to disconnect block; see debug.log for details
2021-11-06T14:19:31Z Error: Error: A fatal internal error occurred, see debug.log for details
2021-11-06T14:22:54Z GUI: Check updates result: no new versions (https://github.com/pocketnetteam/pocketnet.core/releases/latest)
2021-11-06T14:25:05Z ERROR: ProcessNewBlock: ActivateBestChain failed (Failed to disconnect block; see debug.log for details (code 0))
2021-11-06T14:25:05Z Warning! Block generate (CheckInputs): d671e56fc680334cb1c4b064f7b985e026e83187ca504072a1de37937e5a4a01
2021-11-06T14:25:05Z Warning! Block generate (CheckInputs): 81bb31de8caab4977851d1167285126fcc28a7e97953880945d6c604e78dbded
2021-11-06T14:25:05Z Available coins count 3351 BestHeader: 1427851 c5b720b6efe8bbefe877496095d51f010d80d22faac539178a34b0096f7bbb10
2021-11-06T14:25:05Z ERROR: UndoReadFromDisk: Deserialize or I/O error 2 (25) - CAutoFile::read: end of file: iostream error
2021-11-06T14:25:05Z ERROR: DisconnectBlock(): failure reading undo data
2021-11-06T14:25:05Z ERROR: DisconnectTip(): DisconnectBlock c5b720b6efe8bbefe877496095d51f010d80d22faac539178a34b0096f7bbb10 failed
2021-11-06T14:25:05Z *** Failed to disconnect block; see debug.log for details
2021-11-06T14:25:05Z Error: Error: A fatal internal error occurred, see debug.log for details
2021-11-06T14:25:05Z Shutdown: In progress...
2021-11-06T14:25:05Z opencon thread exit
2021-11-06T14:25:05Z addcon thread exit
2021-11-06T14:25:05Z net thread exit
2021-11-06T14:25:15Z ERROR: ProcessNewBlock: ActivateBestChain failed (Failed to disconnect block; see debug.log for details (code 0))
2021-11-06T14:25:15Z msghand thread exit
2021-11-06T14:25:15Z scheduler thread interrupt
2021-11-06T14:25:15Z Pocketcoin Staker terminated
2021-11-06T14:25:15Z [default wallet] keypool return 1
2021-11-06T14:25:15Z Dumped mempool: 0s to copy, 0.042037s to dump

Running the newest node on Windows 10. My solution has been to redownload the the checkpoint file and replace everything. I was hoping the past few updates would fix this but it's been about 2 or so versions and I get this issue maybe once a week?

This is the known BlockUndo issue which we are still working on finding root cause for. It is characterized by the error message below:
ERROR: UndoReadFromDisk: Deserialize or I/O error 2 (25) - CAutoFile::read: end of file: iostream error

Here is the tracking ticket for this issue:
https://github.com/pocketnetteam/pocketnet.core/issues/76
Please close as duplicate.


Use babylon as parser for prettier

Running “yarn format” was logging:
Ignoring unknown --parser value, falling back to "babylon":
Expected "flow" or "babylon", but received: "babel"

Doh!


Functional tests needed for f5_ltm_pool

Functional tests are need for this plugin. These are a combination of happy path tests and negative tests.

Closed by PR #34


Pandas chapters rework

Should think about doing some additional organization of the pandas chapters:
Two examples of this would be:

Split pandas-input.md into pandas-intro.md and pandas-input.md where pandas-intro dealt with an introduction to a dataframe and pandas-input then talked only about reading files from your computer or online.
The data cleaning chapters need to be rewritten and cleaned up.

Started rewrite of these chapters. I'm thinking of simplifying the pandas-input chapter -- I don't know if there is any reason we should introduce reading data from the internet and reading data from your computer as separate things. They use the same function.
Thoughts?

I already went through pandas-input.md for a re-write just before I taught it -- but by all means do another pass at it and make things even better!
I am fairly strongly against separating reading in files from the internet and your computer. Doing it in this way allows us to separate the issues regarding what the pd.read_* functions do from understanding how modern filesystems work. I've found that both are significant issues for students to understand, so breaking them up in this way is quite helpful.

Oops: I meant to say I'm against combining those sections

What are your thoughts on reorganizing it? To me it feels natural to introduce a DataFrame and its methods prior to describing the read_* functions. My plan would be to do something along the lines of

First look at dataframes (includes some of the properties etc...)
Operating on dataframes (includes creating new variables etc...)
Dataframe methods (cover a few of the methods -- Mostly just to encourage them to explore the . + <T> stuff)
Data Input

Reading from internet
Reading from computer
APIs

Examples

It might even make sense to break that into 1, 2, and 3 into a pandas-intro chapter and then do 4 and 5 in a pandas-input chapter -- I like short(ish) chapters and I feel like this one is a bit of a mouthful.

That's a great question.
I also felt it was a bit strange to have the read methods before the data frame properties and working with variables section. However, the argument in favor of how things are now is that in order to talk about those methods you need a DataFrame and by far the most common way studnets will get DataFrames in their code is by using the read_* methods.
If you would like to reorganize and don't think it would be too much effort to implement, maybe you could do it and open it as a PR. I could take a look at the finished product and give a more specific review at that point. I don't want to create extra work, but this approach is the "least risky" in my opinion.  (Also, I suspect that I will like the shorter chapters approach anyway, so ex ante I anticipate merging the PR)

K. I'll work up some changes and update you (with a PR) once I'm ready.

Addressed by https://github.com/NYUDataBootcamp/Book/pull/22#pullrequestreview-5888600


Upgrade RuboCop

Upgrade RuboCop to version 0.32.1: https://github.com/bbatsov/rubocop/releases/tag/v0.32.1

@peritpatrio do you want to address the failing tests?

Fixed the failing tests.
Note that there are style rules for this version of RuboCop that are not defined in config/style_guides/ruby.yml, such as:

Style/BlockDelimiters (replaces Style/Blocks)
Style/CommandLiteral
Style/EmptyElse
Style/IndentationConsistency
Style/SpaceAroundOperators
Style/SpaceInsideStringInterpolation
Rails/Date
Rails/FindBy
Rails/FindEach
Rails/TimeZone

Did not really know what should be done with those.

@peritpatrio We usually disable new rules, as to not introduce unexpected violations on existing users.
We also verify that none of the existing rules in default RuboCop config got disabled, or enabled -- and make the appropriate changes in Hound's default ruby.yml config.

We should consider always upgrading to RuboCop's latest default config. It would be very easy on us during upgrade to generate that config and swap it for our default -- maybe we could do away with our default. Users have raised the issue several times that they did not expect Hound to have its own default config that is different from RuboCop's default.
The downside is that users could begin receiving unexpected violations comments -- though the rules that get changed are usually for rare/uncommon violations. You can spin this into a "feature" -- Hound is getting better, more up to date.
Thoughts @salbertson @thorncp @teoljungberg?

I would expect our default config being rubocop's. If the default config we currently have differs from that, we should migrate over. This might cause some minor inconveniences, but altleast the upgrades from then on will be consistent.
Our thoughtbot guide will be a bit trickier to handle, but that's something we can live with.
Using Rubocops config get's a :+1: from me

Using Rubocop's default makes sense to me and it should make maintenance easier :+1:

I think it would be really great if you started using the default rubocop config! There have been several releases since 0.29.1 that I'd love to take advantage of but we have to lock our local rubocop back to an old version to keep sync'd with Hound.

I switched to RuboCop's default config now. Wasn't sure what would be the correct way to refactor some of the tests so it would be nice if someone could take a look at 'em.

Hound itself doesn't use nor follow the default rubocop config, we're using the thoughtbot styleguide. So the changes that was made outside of upgrading rubocop is out of the scope of this PR

@teoljungberg you commented earlier on this PR saying you supported migrating to use the default rubocop config. So I'm confused...
Perhaps you're suggesting upgrading rubocop here with the existing thoughtbot config, then in a separate PR doing the work to migrate to using the default rubocop config?

@jondkinney I maybe have missunderstood things - I thought the discussion we had in the earlier PR was to have the default style guide being what's used to be rubocops. Not the semi-oppinionated one we have now.
All repos under the thoughtbot organization will use the thoughtbot styleguide, which can be found under config/style_guides/thoughtbot

@teoljungberg So how should we proceed with this? If I revert the changes made to .rb files tests won't pass as they're run against the new default RuboCop config.

I don't think I understand your point.
What we, as the maintainers of Hound, want is to ease our maintenance burden with updating the configurations for the linters. Which is why we want to change the default configuration(found in config/style_guides/ruby.yml to be the default one for Rubocop.
But, the codebase of Hound itself should not change. In the codebase we adhear to the thoughtbot stylegudie(https://github.com/thoughtbot/guides https://github.com/thoughtbot/guides. And that is not going to change. That styleguide can be found in config/style_guides/thoughtbot/ruby.yml
Does that answer any unanswered questions you had?

On 27 Aug 2015, at 05:04, Petri Partio<EMAIL_ADDRESS>wrote:
@teoljungberg https://github.com/teoljungberg So how should we proceed with this? If I revert the changes made to .rb files tests won't pass as they're run against the new default RuboCop config.
—
Reply to this email directly or view it on GitHub https://github.com/thoughtbot/hound/pull/844#issuecomment-135351221.

@peritpatrio thank you for the time and effort put into this. We are planning on removing Hound configs all together, so I'm closing this for now. Check out https://github.com/thoughtbot/hound/tree/use-linter-configs to see progress.

hi @salbertson that link https://github.com/thoughtbot/hound/tree/use-linter-configs doesn't seem to go anywhere ...  I tried searching the code base of "linter-configs" but no joy :-(
Apologies if this has already been answered (I've re-read the thread and I'm not sure), but is there now a pathway that will see hound using a more recent version of rubocop? (now at 0.34.1)

@tansaku that links works just fine, that's a branch we're working on.

@tansaku For the pathway of upgrading rubocop - it's in our backlog and what's blocking it is that we're using a custom styleguide for Hound that's no the rubucop default. Which makes upgrading difficult. So, what the branch @salbertson linked is going to add the rubocop defaults to the config so our upgrading process can be easier

thanks for clarifying @teoljungberg - any idea what the timeline is for us to see the latest rubocop into hound then?

@tansaku Not yet - I'll circle back to this thread once we know more

@teoljungberg any progress on the effort to stay more in sync with rubocop's releases and use their config by default?

@jondkinney We should always stay in sync with Rubocop's release cycle.
We are upgrading Rubocop in #844
As far as the configuration issue, that is something that @gylaz and @thorncp are currently working on.

@teoljungberg this is #844 :) I asked because even with the upgrade to 0.32.1 hound is still behind. Current rubocop version is: 0.36.0.

My bad - the upgrade to 0.36 is done in https://github.com/thoughtbot/hound/pull/1034 (I was to quick to copy-paste there)

:+1: Thanks for the heads up @teoljungberg


Add post: When to show the ‘Add course’ button

 Define the rules when to show the 'Add course' button


dagobahd not working on Mac OS X

I installed dagobah on OS X El Capitan (10.11.6) and the dagobahd command doesn't work by default.
I installed it locally (with the --user option) due to an operation not permitted error, details here.
I can use the package as a module (at least import it), so that's what I'll do for now.
Any tips on how I should fix this? Let me know if you need any more info.

Works for me on OSX, just make sure you have xcode set up so that the modules can be compiled (paramiko), and use brew to install required libraries.
brew install libxml2
brew install libxslt


Decluttering: Cumulative Rules by Presidential Administration

The Challenge
The early months of the cumulative rules by presidential administration chart is a bit cluttered with overlapping lines. Research what other people have done to combat similar issues in charts that have lots of lines originating from the same point, and try it out in a new branch!

If we pursue the interactive dashboard idea for the Reg Stats graphics, this cluttering may cease to be an issue. Adding interactive time range functionality would enable a user to select as many months as they would like to display data for. This would let us combine the graphics for Cumulative ES Final Rules Published by Admin. and Cumulative ES Final Rules Published by Admin. in First Year into one dashboard.
However, we may still want to add the option to display lines for selected presidents in color (while the lines for the unselected presidents remain greyed out).

I think this is right. A dashboard with an interactive plot would make this relatively moot. The grayed out feature might be able to be integrated into the plots too.

I know this is an enterprise dashboard produced by professionals, but it does look like it's possible to toggle individual lines on and off for line graphs (I think R Shiny was used in this case). Also, I like ability to mouse over a line in a particular year and get the data for all selected lines in that year:
https://connect.appsilon.com/fresh-water-resources/

info on packages used:
https://www.appsilon.com/post/freshwater-dashboard-ui-ux-for-r-shiny-applications


Adding more info to learning section

Adding more links and sections.
Adding info about Ansys Help, etc.
Also adding logic to keep links updated with the version.

Pinging:

@PipKat for review
@clatapie for learning purposes
@pmaroneh and @mikerife  because the content was suggested by them.
@jorgepiloto and @Revathyvenugopal162  because of the "hack" for keeping links updated using substitution (see conf.py)

There seems to be a bug in Vale regarding code block skipping. We will investigate this in another PR.
I have opened an issue here:
https://github.com/errata-ai/vale/issues/619


Getting unknown error while adding image_picker and google_mobile_ads

Hi, I'm getting the below error when I'm integrating any version of image_picker. It will work perfectly when there is no google_mobile_ads plugin in the app.
But when I used google_mobile_ads then it gave the below error
FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':app:processDebugResources'.
Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
Could not resolve com.google.android.gms:play-services-ads-base:[19.7.0].
Required by:
project :app > project :google_mobile_ads > com.google.android.gms:play-services-ads:19.7.0
project :app > project :google_mobile_ads > com.google.android.gms:play-services-ads:19.7.0 > com.google.android.gms:play-services-ads-lite:19.7.0
project :app > project :google_mobile_ads > com.google.android.gms:play-services-ads:19.7.0 > com.google.android.gms:play-services-gass:19.7.0
> Failed to list versions for com.google.android.gms:play-services-ads-base.
> Unable to load Maven meta-data from https://google.bintray.com/exoplayer/com/google/android/gms/play-services-ads-base/maven-metadata.xml.
> Could not get resource 'https://google.bintray.com/exoplayer/com/google/android/gms/play-services-ads-base/maven-metadata.xml'.
> Could not GET 'https://google.bintray.com/exoplayer/com/google/android/gms/play-services-ads-base/maven-metadata.xml'. Received status code 502 from server: Bad Gateway

Try:
Run with --stack trace option to get the stack trace. Run with the -the-info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org/

BUILD FAILED in 6s
Exception: Gradle task assembly debug failed with exit code 1
Exited (big term)

Hi @Shubham-Narkhede, please provide a minimal, reproducible example and the output of flutter doctor -v as well as flutter run -v.


parse json validation error

Monika Pull Request (PR)
What feature/issue does this PR add

Closing #938
Improves error message on config validation

How did you implement / how did you fix it

Parse the validation errors back to the user

How to test

use a bad config like this:

notifications:
  - id: unique-id
    type: desktop
probes:
  - id: 'id-test'
    name: test probe
    description: test db connection monitor
    postgres:
      - host: <IP_ADDRESS>
        portk: 3306
        username: user
       password: pass
        database: db

    incidentThreshold: 2
    recoveryThreshold: 2
    alerts:
      - assertion: response.status != 200
        message: 'D-E-D! DB is DED'

then run bin/run-dev -c config.yaml
you should get a detailed error

Screenshot
Before fix

After fix

fixing response...


scanner: Allow for slight variation on run dir

This change is

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

Thanks a lot for your contribution, @daniellandau! A few minor wishes from my side:

Please split the docs improvement in Utils.kt into a separate commit within this PR, as it's not related to the other change.

Please fix the style nit as pointed out by ktlint.

Please add a rationale to the commit message explaining why we should "Allow for slight variation on run dir".

Thanks in advance!

Updated.


Update README.md

require_once is a statement, not a function.
Changed unnecessary use of double quotes to single.
Applied syntax highlighting to some code blocks.

@Bilge that's completely fine, I was simply trying to help there.
Autoloading is completely independent by composer, it's part of of the PHP core
http://php.net/manual/en/language.oop5.autoload.php
http://php.net/manual/en/function.spl-autoload.php
and it should be taken as good practice and somehow enforced if applicable.
Mine was simply a suggestion to make your PR even more valuable.
Same goes for the require_once, since I assume you made this PR with the intent of improving the project, I was suggesting to favour require over require_once because it is not only faster but it also helps you spot duplication errors. If you don't feel comfortable in implementing those changes I will do so once you PR is merged.

Thanks for the improvements and contributions. Have you completed all the changes you wish to make?

@Bilge that looks good indeed. Thanks.

Looks good. Thanks a bunch for your contribution and I hope to see more.
We should be releasing 2.0 feature support within the next few weeks so watch for it.

OK. I'm still not sure I want to use Riak. After scanning the documentation for persistence backends it doesn't sound very reliable to me (Bitcask/LevelDB) so I'll probably end up using Redis instead.

Well, at any rate, thanks again for your PR and good luck with your system planning. Let me know if you have any questions, if I can't answer them I will find someone who can.


Catch dismissable while it's animating.

Fixes #173.

This doesn't work as well as it should, because the vertical drag gesture and the horizontal drag gesture fight over who should own the pointer so if you put your finger down, it keeps animating. I'm not really sure how to handle that... either the horizontal gesture should always win when you tap an animating dismissable (and you can't drag vertically at that time -- that should be easy to do, by just having a flag that makes it greedy), or we should stop it on down, and then resume it when the horizontal drag doesn't win (using the onDragDown/onDragCancel pattern from tap).
I propose doing that in a separate pass though. This patch is still an improvement over the status quo.

LGTM
The DrawerController has the same issue as you describe for the followup patch.  I think the DragDown/DragCancel pattern will scale better than a greedy flag (and we've already gone down that path for tap).

Another interesting case to look at is the Switch.  Dragging the switch has a delay because the drag gesture is fighting with the tap gesture.  However, the UX is arranged such that starting a drag and completing with a tap makes sense because they both want to drive the performance in the same direction.

Another interesting case to look at is the Switch.  Dragging the switch has a delay because the drag gesture is fighting with the tap gesture.  However, the UX is arranged such that starting a drag and completing with a tap makes sense because they both want to drive the performance in the same direction.  It's an odd case though and might be better handled with a custom gesture.

Another interesting case to look at is the Switch.  Dragging the switch has a delay because the drag gesture is fighting with the tap gesture.  However, the UX is arranged such that starting a drag and completing with a tap makes sense because they both want to drive the performance in the same direction.  It's an odd case though and might be better handled with a custom gesture.

My main concern with having onDragDown, onDragDownMove, and onDragCancel is that it adds at least nine events to GestureDetector. I agree that it's probably the right solution though.

Filed https://github.com/flutter/flutter/issues/1028

Also filed https://github.com/flutter/flutter/issues/1029 for the opacity regression.

My main concern with having onDragDown, onDragDownMove, and onDragCancel is that it adds at least nine events to GestureDetector. I agree that it's probably the right solution though.

We could switch how GestureDetector works so that it takes a TapGestureClient and a DragGestureClient as argument instead of individual callbacks.  Then you'd mix them into your State object.  That would also make it obvious which callbacks were grouped together into one gesture.


switch to office-toolbox in quick start

moved old quick start in OLD folder

:warning: Validation status: warnings

File
Status
Preview URL
Details

LauragraDocset0317235153/excel/excel-add-ins-get-started-angular.md
:warning:Warning

Details

LauragraDocset0317235153/excel/excel-add-ins-get-started-react.md
:warning:Warning

Details

LauragraDocset0317235153/excel/OLD/excel-add-ins-get-started-angular.md
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/OLD/excel-add-ins-get-started-react.md
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/OLD/images/excel-online-upload.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/OLD/images/yo-office.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/images/office-toolbox-generate.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/images/office-toolbox-sideload.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/excel-add-ins-get-started-angular.md

Line 37: [Warning] Invalid file link:(~/excel/img/office-toolbox-generate.png).
Line 116: [Warning] Invalid file link:(~/excel/img/office-toolbox-sideload.png).

LauragraDocset0317235153/excel/excel-add-ins-get-started-react.md

Line 37: [Warning] Invalid file link:(~/excel/img/office-toolbox-generate.png).
Line 121: [Warning] Invalid file link:(~/excel/img/office-toolbox-sideload.png).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

LauragraDocset0317235153/excel/OLD/excel-add-ins-get-started-angular.md
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/OLD/excel-add-ins-get-started-react.md
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/OLD/images/excel-online-upload.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/OLD/images/yo-office.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/excel-add-ins-get-started-angular.md
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/excel-add-ins-get-started-react.md
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/images/office-toolbox-generate.png
:white_check_mark:Succeeded

LauragraDocset0317235153/excel/images/office-toolbox-sideload.png
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@Hongbo-Miao -- as we discussed during yesterday's standup, we will not be mentioning Office Toolbox in any of the docs for Ignite.  We may update the quickstart articles in the future (to replace YO Office with Office Toolbox) if/when Office Toolbox is GA, but that will not happen before Ignite.

Since this won't be done before Ignite, I'm closing this PR.  I've saved the new versions of each get started article (and the 2 new images), so we can implement the changes (to reference Office Toolbox instead of YO Office) whenever Office Toolbox is GA (post-Ignite).


binary.Write,Why not cache the sizeof(v) result？

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.9.2 windows/amd64
Does this issue reproduce with the latest release?
NOP
What operating system and processor architecture are you using (go env)?
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:/
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\lvhua\AppData\Local\Temp\go-build686804515=/tmp/go-build -gno-record-gcc-switches
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
What did you do?
I am using binary pkg to encode structure objects to bytes for the data exchange between services, but i am confusing about the mechanism inside. Everytime i Write any objects, there is a dataSize(v) invoked.Why not cache it for next using.
What did you expect to see?
What did you see instead?

Thank you for raising this issue. Unlike many projects on GitHub, the Go project does not use its bug tracker for general discussion or asking questions. We only use our bug tracker for tracking bugs and tracking proposals going through the Proposal Process.
Please see https://golang.org/wiki/Questions for good places to ask questions.


Add possibility to just abort a job

This is considered to be the equivalent to Resque::Job::DontPerform.
DontPerformException may be thrown by a WorkerListener on JOB_PROCESS to silently skip the job to be executed. The job won't be counted as "processed" nor "failed". The WorkerListener may re-enqueue the job after a delay, if required.

Coverage increased (+0.3%) to 80.879% when pulling e6d4c181812a56343ea97e65561b39ca9d2d1ed8 on markus-s24:dont-perform-exception into 5483d4efd0c1da48b97add10d1cca9349f8664b9 on gresrun:master.

Coverage increased (+0.3%) to 80.895% when pulling a1d0c62c544e6e7ff11cb5f020cfd35a1b8e1503 on markus-s24:dont-perform-exception into 5483d4efd0c1da48b97add10d1cca9349f8664b9 on gresrun:master.


Move SBT configuration to build.sbt

Move SBT configuration to build.sbt #452

Thanks! This looks great. :+1:


Update log information

Codecov Report

Merging #17 into master will increase coverage by 0.18%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #17      +/-   ##
==========================================
+ Coverage   70.51%   70.69%   +0.18%
==========================================
  Files          13       13
  Lines         970      976       +6
==========================================
+ Hits          684      690       +6
  Misses        286      286

Impacted Files
Coverage Δ

...ing_oneview/ml2/drivers/oneview/synchronization.py
67.36% <100%> (+1.41%)
: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 2978632...de072f2. Read the comment docs.


Implement token deposit

This requires https://github.com/deep-ink-ventures/elio-dao-protocol/issues/35 as a prerequisite.
When a proposal is created, on top of the required native balance implemented in https://github.com/deep-ink-ventures/elio-dao-protocol/issues/34, we require a deposit of tokens.
This requires the contract to transfer the configured token deposit to votes contract. The tokens should be released back to the proposal creator when the proposal is finalized or when the proposal is marked faulty.

Adjustment: Make sure that the propsal can only be created if the token has been minted, so that it will fail even if the token deposit is set to 0.


Q.all({})

it would be good to have something like named variables in Q.all to pass directly to template engine
assume its express+express-hbs code
Q.all({
	article: Article.findById(request.query.id),
	comments: Comment.find({articleId:request.query.id})
})
.then(function(result){
	response.render("article.hbs", result);
})
.done();

{{article.title}}

{{article.text}}

{{#each comments}}
{{> _comment}}
{{/ech}}

because now i have to do this in very long way
simpleHTMLWrapper: function (method) {
	return function (request, response, next) {
		var result = method(request, response, next),
			keys = Object.keys(result);
		Q.all(keys.map(function (key) {
			return result[key];
		}))
			.then(function (results) {
				var params = {};
				keys.forEach(function (element, index) {
					params[element] = results[index];
				});
				response.render(method.name.replace("_", "/") + ".hbs", params);
			})
			.fail(next)
			.done();
	};
},

app.get("/article", helper.simpleHTMLWrapper(function article_show (request){
	return {
		article: Article.findById(request.query.id),
		comments: Comment.find({articleId:request.query.id})
	};
}));

+1 It'll be great to get this feature

For now, you can at least get some help from promise.spread and lodash to make it more convenient:
Q.all([
    Article.findById(request.query.id),
    Comment.find({articleId:request.query.id})
])
.spread(function () {

    var result = _.zipObject(['article', 'comments'], arguments);

    response.render("article.hbs", result);

})
.done();

You could also implement your request like this:
Q.superAll = function (obj) {

    var keys = _.keys(obj);

    return Q.all(_.values(obj))
        .spread(function () {

            return _.zipObject(keys, arguments);

        });

};

and use it like:
Q.superAll({
    article: Article.findById(request.query.id),
    comments: Comment.find({articleId:request.query.id})
})
.then(function(result){
    response.render("article.hbs", result);
})
.done();

Note 1: I haven't tested the code but even if it doesn't work, I'm sure you all get the idea.
Note 2: I am not voting for or against this feature.

Great solution for me :) But if I understand right, we can write it like:
Q.superAll = function (obj) {
    var keys = _.keys(obj);
    return Q.spread(_.values(obj), function () {
            return _.zipObject(keys, arguments);
        });
};

Am I right?

I just find it better to keep things more understandable in discussions like this. You also don't need to assign keys to a variable.

Yep, I understand, works great. Thank you

See #374 #328 #159

I have made a small library for this problem: https://www.npmjs.com/package/q-deep
It's really tiny and it certainly doesn't work in all cases describe in the discussions here. But it can handle
things like
deep({
    a: 1,
    b: [ 2, Q(3) ]
}).done(console.log); // == {a: 1, b: [2,3]}

and even nested promises, such as
deep({
    a: 1,
    b: Q({ c: 2, d: Q(3) })
}).done(console.log); // == { a: 1, b: { c: 2, d: 3 } }

I wrote it for myself have an easier way handling promises in objects.

thx to all for your help

Per prior discussion, I do not intend to bring this feature to Q. Please consider using q-deep or publish a small module.


FuzzySelect returns wrong index if items has duplicate entries

If a slice with duplicate values is passed to the items() method on a new FuzzySelect, the index of the first item is returned if the user selects the second item.
use dialoguer::{console::Term, FuzzySelect};

fn main() {
    let items = ["item0", "item1", "item1", "item3", "item4"];

    let selection = FuzzySelect::new()
        .items(&items)
        .interact_on_opt(&Term::stderr())
        .unwrap();

    if let Some(index) = selection {
        println!("Selection: {index}");
    }
}

Selecting the first item returns the correct index.
|
  item0
> item1
  item1
  item3
  item4

Selection: 1

Selecting the second item returns the incorrect index.
|
  item0
  item1
> item1
  item3
  item4

Selection: 1

I think the issue originates here where the selected index is determined from the string of the item that was chosen.
https://github.com/console-rs/dialoguer/blob/d952d17d1c09b6dcbfdb94850818fdce8c02bfeb/src/prompts/fuzzy_select.rs#L334-L336
I'm not seeing an easy way to determine the index that is selected instead of the string itself.

Perhaps, as an added benefit to the user, duplicate items in the list can be determined and renamed as such?  E.g.
|
item0
item1

item1 (Duplicate 1)
item3
item4

Can have any N number of duplicates.  This would generate unique names for each item in the list.

Perhaps, as an added benefit to the user, duplicate items in the list can be determined and renamed as such? E.g. | item0 item1 item1 (Duplicate 1) item3 item4
Can have any N number of duplicates. This would generate unique names for each item in the list.

This is of course assuming that any of the select menus can and should support duplicate entries.  I can't really think of a reason that would be needed (how could the 2 similar selections actually result in different outcomes?), so the simple solution would be to always return a set of only unique entries in the items list.


TODO: open MSVC bug report.

This issue is now tracked in xcrash. According to VS team, they have fixe din an upcoming release.


Add PIPELINE_OPTIONS_FILE environment variable to allow PIPELINE_OPTIONS to be read from a file

Add an option to the FnApi harness PIPELINE_OPTIONS_FILE that overrides the old PIPELINE_OPTIONS environment variable with the contents of a file. This allows us to circumvent kernel limits on the combined size of environment variables and commandl ine arguments.
Addresses #27839
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

I'm of the opinion that most of the failures are unrelated.

Run Java PreCommit

GitHub Action failures are due to #27854 , not related

Run Java PreCommit

Run Java PreCommit

Run Dataflow ValidatesRunner

Run PortableJar_Flink PostCommit

Run Java Dataflow V2 ValidatesRunner


New-BcContainer 'Sandbox'  NextMajor. The license file is corrupt.

hi Freddy,
Have an issue with my nextMajor pipeline.
"The license file is corrupt. Error Code: Unknown error."
The dev license was generated today (13.10.22) for BC21. compatible with the current release and all other old BC releases.
$containerName = 'bc22-us' $auth = 'UserPassword' $navAdminUsername = "bc" $securePassword = convertto-securestring "bc" -asplaintext -force $credential = New-Object System.Management.Automation.PSCredential($navAdminUsername, $securePassword) $sasToken = "?sv=....3D" $artifactUrl = Get-BcArtifactUrl -country 'us' -type 'Sandbox' -select NextMajor -sasToken $sasToken $licenseFileUri = "C:\...\Scripts\5331246.flf" New-BcContainer
-accept_eula     -containerName $containerName
-credential $credential     -auth $auth
-artifactUrl $artifactUrl     -multitenant:$false
-includeTestToolkit     -includeTestLibrariesOnly
-includePerformanceToolkit     -assignPremiumPlan
-licenseFile $licenseFileUri     -memoryLimit 8G
-includeAL -doNotExportObjectsToText     -vsixFile (Get-LatestAlLanguageExtensionUrl)
-updateHosts      -EnableTaskScheduler:$false
`BcContainerHelper is version 4.0.5
BcContainerHelper is running as administrator
Hyper-V is Enabled
UsePsSession is True
Host is Microsoft Windows 10 Enterprise - 1909
Docker Client Version is 20.10.17
Docker Server Version is 20.10.17
Removing Session bc22-us
Removing container bc22-us
Removing entries from hosts
Removing bc22-us from container hosts file
Removing bc22-us-* from container hosts file
Removing Desktop shortcuts
Removing C:\ProgramData\BcContainerHelper\Extensions\bc22-us
Fetching all docker images
Fetching all docker volumes
Using image mcr.microsoft.com/businesscentral:10.0.18363.1556
Creating Container bc22-us
Style: sandbox
Multitenant: No
Version: 22.0.47754.0
Platform: 22.0.47698.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.18363.1556 (1909)
Host OS Version: 10.0.18363.2274 (1909)
Using hyperv isolation
Using locale en-US
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Downloading C:\ProgramData\BcContainerHelper\Extensions\bc22-us\Microsoft.VisualStudio.Services.VSIXPackage.vsix
Using license file C:\Work\Sana\Dev\NavExtension\Scripts\5331246.flf
Additional Parameters:
--env customNavSettings=EnableTaskScheduler=False
Files in C:\ProgramData\BcContainerHelper\Extensions\bc22-us\my:

AdditionalOutput.ps1
license.flf
MainLoop.ps1
SetupNavUsers.ps1
SetupVariables.ps1
updatehosts.ps1
Creating container bc22-us from image mcr.microsoft.com/businesscentral:10.0.18363.1556
604a5957441bf7ff9db1046d3e294ec6928846c892212b68467e94be040a4ede
Waiting for container bc22-us to be ready
Using artifactUrl https://bcinsider.azureedge.net/sandbox/22.0.47754.0/us
Using installer from C:\Run\210-new
Installing Business Central
Installing from artifacts
Starting Local SQL Server
Starting Internet Information Server
Copying Service Tier Files
c:\dl\sandbox\22.0.47754.0\platform\ServiceTier\Program Files
c:\dl\sandbox\22.0.47754.0\platform\ServiceTier\System64Folder
Copying PowerShell Scripts
c:\dl\sandbox\22.0.47754.0\platform\WindowsPowerShellScripts\Cloud\NAVAdministration
c:\dl\sandbox\22.0.47754.0\platform\WindowsPowerShellScripts\WebSearch
Copying Web Client Files
c:\dl\sandbox\22.0.47754.0\platform\WebClient\Microsoft Dynamics NAV
Copying ModernDev Files
c:\dl\sandbox\22.0.47754.0\platform
c:\dl\sandbox\22.0.47754.0\platform\ModernDev\program files\Microsoft Dynamics NAV
Copying additional files
Copying ConfigurationPackages
C:\dl\sandbox\22.0.47754.0\us\ConfigurationPackages
Copying Test Assemblies
C:\dl\sandbox\22.0.47754.0\platform\Test Assemblies
Copying Extensions
C:\dl\sandbox\22.0.47754.0\us\Extensions
Copying Applications
C:\dl\sandbox\22.0.47754.0\platform\Applications
Copying Applications.US
C:\dl\sandbox\22.0.47754.0\us\Applications.US
Copying dependencies
Copying ReportBuilder
Importing PowerShell Modules
Restoring CRONUS Demo Database
Setting CompatibilityLevel for CRONUS on localhost\SQLEXPRESS
Modifying Business Central Service Tier Config File for Docker
Creating Business Central Service Tier
Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
Starting Business Central Service Tier
Importing license file
Stopping Business Central Service Tier
Installation took 129 seconds
Installation complete
Initializing...
Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is bc22-us
PublicDnsName is bc22-us
Using NavUserPassword Authentication
Creating Self Signed Certificate
Self Signed Certificate Thumbprint AB4782AE3A9F60CD6870B00E85C0A52D7EA1F8BF
DNS identity bc22-us
Modifying Service Tier Config File with Instance Specific Settings
Modifying Service Tier Config File with settings from environment variable
Setting EnableTaskScheduler to False
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Using application pool name: BC
Using default container name: NavWebApplicationContainer
Copy files to WWW root C:\inetpub\wwwroot\BC
Create the application pool BC
Create website: NavWebApplicationContainer without SSL
Update configuration: navsettings.json
Done Configuring Web Client
Enabling Financials User Experience
Using license file 'c:\run\my\license.flf'
Import License
The license file is corrupt. Error Code: Unknown error.
at , C:\Run\SetupLicense.ps1: line 29
at , C:\Run\navstart.ps1: line 196
at , C:\Run\start.ps1: line 384
at , : line 1Error
Using artifactUrl https://bcinsider.azureedge.net/sandbox/22.0.47754.0/us
Using installer from C:\Run\210-new
Installing Business Central
Installing from artifacts
Starting Local SQL Server
Starting Internet Information Server
Copying Service Tier Files
c:\dl\sandbox\22.0.47754.0\platform\ServiceTier\Program Files
c:\dl\sandbox\22.0.47754.0\platform\ServiceTier\System64Folder
Copying PowerShell Scripts
c:\dl\sandbox\22.0.47754.0\platform\WindowsPowerShellScripts\Cloud\NAVAdministration
c:\dl\sandbox\22.0.47754.0\platform\WindowsPowerShellScripts\WebSearch
Copying Web Client Files
c:\dl\sandbox\22.0.47754.0\platform\WebClient\Microsoft Dynamics NAV
Copying ModernDev Files
c:\dl\sandbox\22.0.47754.0\platform
c:\dl\sandbox\22.0.47754.0\platform\ModernDev\program files\Microsoft Dynamics NAV
Copying additional files
Copying ConfigurationPackages
C:\dl\sandbox\22.0.47754.0\us\ConfigurationPackages
Copying Test Assemblies
C:\dl\sandbox\22.0.47754.0\platform\Test Assemblies
Copying Extensions
C:\dl\sandbox\22.0.47754.0\us\Extensions
Copying Applications
C:\dl\sandbox\22.0.47754.0\platform\Applications
Copying Applications.US
C:\dl\sandbox\22.0.47754.0\us\Applications.US
Copying dependencies
Copying ReportBuilder
Importing PowerShell Modules
Restoring CRONUS Demo Database
Setting CompatibilityLevel for CRONUS on localhost\SQLEXPRESS
Modifying Business Central Service Tier Config File for Docker
Creating Business Central Service Tier
Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
Starting Business Central Service Tier
Importing license file
Stopping Business Central Service Tier
Installation took 129 seconds
Installation complete
Initializing...
Setting host.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting gateway.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is bc22-us
PublicDnsName is bc22-us
Using NavUserPassword Authentication
Creating Self Signed Certificate
Self Signed Certificate Thumbprint AB4782AE3A9F60CD6870B00E85C0A52D7EA1F8BF
DNS identity bc22-us
Modifying Service Tier Config File with Instance Specific Settings
Modifying Service Tier Config File with settings from environment variable
Setting EnableTaskScheduler to False
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Using application pool name: BC
Using default container name: NavWebApplicationContainer
Copy files to WWW root C:\inetpub\wwwroot\BC
Create the application pool BC
Create website: NavWebApplicationContainer without SSL
Update configuration: navsettings.json
Done Configuring Web Client
Enabling Financials User Experience
Using license file 'c:\run\my\license.flf'
Import License
The license file is corrupt. Error Code: Unknown error.
at , C:\Run\SetupLicense.ps1: line 29
at , C:\Run\navstart.ps1: line 196
at , C:\Run\start.ps1: line 384
at , : line 1
rReady.ps1:42 char:17

...             throw "Initialization of container $containerName failed" ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : OperationStopped: (Initialization ... bc22-us failed:String) [], RuntimeException
FullyQualifiedErrorId : Initialization of container bc22-us failed`

Could you email me your license file so that I can test it?
freddyk at microsoft dot com

sent

@dkorinets thanks, I can repro that - but only with the .flf file.
The .bclicense file works.
Please try using the .bclicense file instead of the .flf file.
I have asked the team whether this is as expected or whether the .flf also should work.

Version 22 only supports .bclicense is the answer

I see, good to kwow.
Thank you


Allow instanceName

instanceName will allow us to prepend logging.
const Logger = require('@ladjs/logger');
const logger = new Logger({ instanceName: 'WEB' });

logger.info('web server listening on 3000');
// [WEB] info: web server listening on 3000

@OmgImAlexis can this be closed now? 🎉

Yep.  🎉

Closed in https://github.com/ladjs/logger/commit/ae4ed0ef665adaa40966e770df3cd23d13a1932b


Once selected a value, the component is not responding to ENTER or ARROW DOWN as earlier versions

see this demo for reference
https://innqube.github.io/ng2-iq-select2-demo/


Period should go after parenthetical phrase

Under Getting Started - Topics - Model tracking, the first sentence under the subheading "How Does it work?" incorrectly places a period before the parenthetical phrase. The period should be moved to after the end parenthesis.
...on property reads, writes, and deletes. (among other things)
Update to:
...on property reads, writes, and deletes (among other things).

Fixed in b8f44e21aed3d5a37f87acd04af910cdc8421a42, but not yet published to the live docs site.  It will be included during the next publish.


dirty page logging: race condition betweeen starting logging dirty pages and mapping segment

@jlevon pointed out the following problem: if a DMA segment is already mapped (e.g. SPDK has mapped the admin queue) and dirty page logging is started afterwards, we'll miss logging the relevant pages. Even worse, if https://github.com/nutanix/libvfio-user/issues/526 turns out to be true (we must reset the bitmap each time VFIO_USER_DIRTY_PAGES is executed), then we'll again miss logging the relevant pages.
Possible solutions:

Introduce a function that the user calls to mark page dirty. This should solve the problem (might have to introduce locks) but makes it harder to use for the client.
Keep track of currently mapped segments and set the relevant bits when dirty page logging is started or when the bitmap is requested. This is easier for the user but we might end up dirtying more pages than necessary.

The above solutions are not mutually exclusive: the client can specify whether dirty page tracking must be implicit or explicit.

@jlevon an alternative to keeping track of currently mapped segments it to used a currently mapped bitmap: each bit tells whether or not an area of a DMA region is currently mapped. This "area" doesn't necessarily have to be a page, it can operate on larger granularity, e.g. 2 MB regions. This way the memory footprint will be low at the cost of reporting clean pages as dirty. This approach trades memory footprint for speed.

I think it's worthwhile doing a write-up - a markdown draft in docs/ would do - that describes what we want the whole thing to look like.
The problem with a "mapped" bitmap (actually, what we really want is an "unmapped" bitmap), is it can't account for multiple sg's covering the same pages.
Without mapping, only way to write to guest memory is vfu_dma_write(). We don't need to worry about that (either dirty in libvfio-user, or let the client handle it - should add that to the spec).
So, first thing I think we need is to move the dirtying from vfu_addr_to_sg() to vfu_map_sg(). This would likely include moving 'prot' too - we can check prot instead directly in vfu_dma_read/write() for the non-mapped case.
Then, in vfu_map_sg, we take "prot" to check, as well as a flag that means "we'll explicitly mark". Add a vfu_mark_dirty API of some sort. I think this is relatively trivial - such ranges explicitly dirty bits and otherwise don't need to be taken into account - so won't comment further.
So, how do we clear bits after copying out the dirty bitmap at DIRTY_PAGES time? The stupidest implementation is that at map time, we keep a list of every SG, then to see if we can clear a page, we walk the full list: if we don't find it, it's fine to clear, as SPDK cannot write to the page.
This is obviously horrible in terms of performance, so we would want a better data structure...

(As an example of "better": add each map/unmap to a log (O(1) append), then process/compact that log at DIRTY_PAGES time.)

The problem with a "mapped" bitmap (actually, what we really want is an "unmapped" bitmap), is it can't account for multiple sg's covering the same pages.

Good point.

So, first thing I think we need is to move the dirtying from vfu_addr_to_sg() to vfu_map_sg(). This would likely include moving 'prot' too - we can check prot instead directly in vfu_dma_read/write() for the non-mapped case.

Yes, vfu_addr_to_sg() is not the right place to do all this.

So, how do we clear bits after copying out the dirty bitmap at DIRTY_PAGES time? The stupidest implementation is that at map time, we keep a list of every SG, then to see if we can clear a page, we walk the full list: if we don't find it, it's fine to clear, as SPDK cannot write to the page.
This is obviously horrible in terms of performance, so we would want a better data structure...

We can keep a list of mapped segments and at DIRTY_PAGES time we clear the bitmap and then walk the list and turn on the relevant bits. I wouldn't expect this list to grow too big, for SPDK it will only be the queues and in-flight I/Os.  The only cost is adding a segment to the list which is fast.

clear the bitmap and then walk the list and turn on the relevant bits

Need to be careful with races I think.

walk the list

I don't know if you meant this loosely, but a growable array would be way better.
I thought yesterday that we needed to still track an sg after vfu_unmap_sg(), but I think I was wrong.
If we get a DIRTY_PAGES before unmap, we keep the dirty bit set. If it comes in after unmap, then the bit will still be set (and copied), and we are then OK to clear.

clear the bitmap and then walk the list and turn on the relevant bits

Need to be careful with races I think.

Oh yes, the DMA controller in general is not multi-threaded.

walk the list

I don't know if you meant this loosely, but a growable array would be way better.

No, I didn't mean it loosely. Why would a growable array be better? Using a list we don't have to allocate memory. Is it because iteration would be faster?

I thought yesterday that we needed to still track an sg after vfu_unmap_sg(), but I think I was wrong.
If we get a DIRTY_PAGES before unmap, we keep the dirty bit set. If it comes in after unmap, then the bit will still be set (and copied), and we are then OK to clear.

Correct.

linked lists are pretty much the worst data structure for modern computer systems. If we're expecting a  small-ish maximum of mappings, then a growable array is way better for cache locaility etc. And the allocation is amortized if you leave it grown.


Renewal process?

Is there a renewal process for renewing certificates with this gem?

Hi,
you can get new certificate by invoking letsencrypt_plugin task second time about week before certificate expiration


Add code for Longest common subsequence problem

I would like to resolve the issue

Please read the contribution guide.

Thank you for allowing me to send a PR. I have read the contribution guide.
On 05-Oct-2017 8:45 PM, "Thuvarakan Tharmarajasingam" <
<EMAIL_ADDRESS>wrote:

Please read the contribution guide.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Thuva4/Algorithms_Example/issues/86#issuecomment-334497295,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APzU4uz9OmMo1sR8tAywnfns6AnchT-3ks5spPKjgaJpZM4PvFLN
.

Please check #109

Check #132 for C++ code

#161 Implementation in Python

#168 Implementation in Ruby


Subscript and superscript Unicode

Just toying around:
$ ./tpl -v
Trealla Prolog (c) Infradig 2020-2023, v2.52.25

$ ./tpl
?- X = π(x).
   X = π(x).

?- X = π₂(x).
Error: syntax error, near '₂', operator expected, user:1

What would be an argument against including
OTHER_NUMBER in Prolog identifiers?

SWI Prolog doesn't, not really a reason though.
The actual reason is that Trealla uses the C function iswalnum (mainly) as in:
	while (iswalnum(ch)

#ifdef APPLE
|| iswideogram(ch)
#endif
|| (ch == '_')) {
and apparently C doesn't include OTHER_NUMBER in there.

The more I look into it the less reason I see to include it. In Maths & CS it is common to give identifiers designations like a' (eg a-prime) etc, which you can't do in Prolog either.

Interesting SWI-Prolog has a code_type/2 predicate,
that can also work with mode (+, -):
?- char_code('𝜆', X), code_type(X, Y).
X = 120582,
Y = csym ;
Etc..

How would I do that in Trealla Prolog? What I
figured out, there is a predicate for mode (+, +):
?- char_code('𝜆', X), '$code_type'(X, lower).
   X = 120582.

But there is no agreement how things are classified,
SWI-Prolog thinks its "csym" what ever that means,
and Trealla Prolog classifies it "lower", which is
closer to Unicode Categories. I think completely
relying on Unicode Categories would have the
advantage that it would give the perspective of
being consistent among Prolog systems. But it
could be that there is no easy mapping to some
common C-libraries, as the subscript example shows.

while (iswalnum(ch)

I think this is not required. The problem is that OTHER_NUMBER
has also some members which have fractional number values,
or number values that are greater than a digit.
For example there is an OTHER_NUMBER:
⒙  Number Eighteen Full Stop
https://www.compart.com/en/unicode/U+2499
So I do not classify it as digit in my system, and
this here doesn't work:
?- number_codes(X, "₂₁").
Fehler: Keine Nummer.
	user auf 1

But I allow it in identifiers. The code from Novacore
that does that is here:
sys_type_class(11, is_ident).

But allowing all OTHER_NUMBERS in identifiers,
we can now fake a period. This query works in my system:
?- X = ⒙(Y).
X = ⒙(Y).

I don't think super/sucb should be part of identifiers. If you want to use them and attach them to identifiers, make them postfix ops.

I think most of the Unicode classification efforts are rooted
in the fact that different Languages around the Globe have
different Scripts, and different writing directions left to right,
right to left, and the there are rules in certain Scripts, where
the writing direction changes, and for example a number 123
is not displayed 321, but still 123 for some reasons.
This would explain why even exotic Unicode points have
certain attributes stored in the Unicode database. I am currently
trying to find out what algorithm Scryer Prolog is using.
For example it doesn't recognize this beast:
?- X = ⒙(Y).
X = ⒙(Y).
I have the feeling it has a criteria for what is digit like, but
unfortuately it has also no predicate code_type/2. So I have
really no clue whats going on.
But I will probably do a revision of my algorithm, to get
closer to Scryer Prolog, which seems to make sense.