[Event Request] - OnCheckingDeferringDueDatesonSales event in table 12170 "Payment Lines"

Please, consider adding the following event in table 12170 "Payment Lines":
[IntegrationEvent(false, false)]
local procedure OnCheckingDeferringDueDatesonSales(var PaymentLines: Record "Payment Lines"; var SalesHeader: Record "Sales Header"; DeferringDueDates: Record "Deferring Due Dates")
begin
end;

and calling it accordingly in procedure "CreatePaymentLinesSales":
...
...
                    if DeferringDueDates.FindFirst and (PaymentLines."Due Date" >= DeferringDueDates."From-Date") then begin
                        PaymentLines."Due Date Calculation" := DeferringDueDates."Due Date Calculation";
                        if Format(DeferringDueDates."Due Date Calculation") = '' then
                            PaymentLines."Due Date" := DeferringDueDates."To-Date" + 1
                        else
                            PaymentLines."Due Date" := CalcDate(DeferringDueDates."Due Date Calculation", DeferringDueDates."To-Date");

                        if PaymentLines."Due Date" < SalesHeader."Document Date" then
                            PaymentLines."Due Date" := SalesHeader."Document Date";
                    END;

                    **OnCheckingDeferringDueDatesonSales(PaymentLines, SalesHeader, DeferringDueDates);**

                    OldDate := PaymentLines."Due Date";
                    FixedDueDates.SetRange("Payment Days", Date2DMY(PaymentLines."Due Date", 1), 99);

                    if FixedDueDates.FindFirst() then begin
                        Day := FixedDueDates."Payment Days";
                        MaximumDay := Date2DMY(CalcDate('<CM>', PaymentLines."Due Date"), 1);
                        if Day > MaximumDay then
                            Day := MaximumDay;
                        Month := Date2DMY(PaymentLines."Due Date", 2);
                        Year := Date2DMY(PaymentLines."Due Date", 3);
                        PaymentLines."Due Date" := DMY2Date(Day, Month, Year);
                    end else begin
...
...

Thank you

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 49502.


The package 'react-native-volume-manager' doesn't seem to be linked

Hi team,
My android app is using with following configuration:

react-native: "0.69.5"
react-native-volume-manager: "^1.10.0"
org.jetbrains.kotlin:kotlin-gradle-plugin: "1.6.0"

but when run on android, the error show:

However, it works normally on iOS. How to resolve it ? Although, I tried to down-grade react-native-volume-manager to below version but didn't still work.

Not sure what happened in your case, maybe its related to RN 0.69.5 - I do not support old versions. I think you need to upgrade to 0.71+

I got same the issue, have you any solution without upgrade to 0.71+ ?

I got same the issue, have you any solution without upgrade to 0.71+ ?

I got same the issue, have you any solution without upgrade to 0.71+ ?

Not sure what happened in your case, maybe its related to RN 0.69.5 - I do not support old versions. I think you need to upgrade to 0.71+

I got same the issue, have you any solution without upgrade to 0.71+ ?

same problem occurs in  react native version  0.72.0
I meet the errors when compile it ,
[!] CDN: trunk Repo update failed - 10 error(s):
CDN: trunk URL couldn't be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/0/0/c/Mute/0.1.0/Mute.podspec.json Response: Timeout was reached

but I attach url <https://cdn.jsdelivr.net/cocoa/Specs/0/0/c/Mute/0.1.0/Mute.podspec.json > to brower.  Url can explore it ,
I confused about it .

@canven that issue is unrelated and there was a Response timeout. Either a network issue or the CDN was down at the time.

@canven that issue is unrelated and there was a Response timeout. Either a network issue or the CDN was down at the time.

I try to install package again ,  it has ran like a charm. It may network problem for me in my side,  Thanks for your efforts.  Best Regards .

I am closing this issue, since I can't reproduce any issues in recent React Native versions and I can't maintain older versions unfortunately.

I am also encountering the same issue on the iOS simulator.
In my package.json, I am using the following versions:
"react-native": "0.74.5",
"react-native-volume-manager": "^1.10.0",

It reproduces on iOS 15.5 (iPhone SE 1st Generation), which is a slightly older OS.
For reference, it works fine and does not reproduce on iOS 17, 18, or Android.


DaemonSet upgrade strategy: Start-then-kill

Feature Description

One-line feature description (can be used as a release note): DaemonSet upgrades can be achieved via a start-then-kill update strategy
Primary contact (assignee): @aaronlevy @diegs
Responsible SIGs: @kubernetes/sig-cluster-lifecycle-feature-requests @kubernetes/sig-apps-feature-requests
Design proposal link (community repo): https://github.com/kubernetes/community/pull/977
Reviewer(s) - (for LGTM) recommend having 2+ reviewers (at least one from code-area OWNERS file) agreed to review. Reviewers from multiple companies preferred: @janetkuo @kargakis
Approver (likely from SIG/area to which feature belongs): @erictune
Feature target (which target equals to which milestone):

Alpha release target (x.y) n/a
Beta release target (x.y) 1.8
Stable release target (x.y) 1.9

Design doc: https://github.com/kubernetes/community/pull/977

Will this feature make v1.8?

@luxas no it was decided in the last sig meeting that we would not push it into 1.8 since checkpointing wasn't going to make it.

@roberthbailey @aaronlevy @diegs @kubernetes/sig-cluster-lifecycle-feature-requests @kubernetes/sig-apps-feature-requests does this feature target 1.9?

@idvoretskyi  the feature has been put on hold and won't target the 1.9 release.

I'll close this in the meantime.


yo haha remember that time you ratted that mod and sent it to people over discord dms. that was wild bro

yes


Missing installation of the include directory.

Adding to the install the content of the include directory. Required when linking code with the dvl_a50 package.

Sorry, only saw your PR now. I'm not sure, but shouldn't this line already handle this?

Hi,
My understanding is that the INSTALL ( TARGETS ... ) defines the name of a target, then the following DESTINATION tags defines the diverse targeted directory name of the installation.
Using your CMakelist.txt
Clean the install directory for the package: rm -r ./install/dvl_a50
Then recompile: colcon build --symlink-install --packages-select dvl_a50
There are no .hpp files in your install/dvl_a50 directory, therefore it is impossible to link with the package library that is installed in the
Then we have to use the INSTALL ( DIRECTORY ...)  or INSTALL( FILE ...) that provides the list of files to be copied in the installation directory.
Without the added install command, the include directory files won't be installed in the process.
If you use the provided INSTALL command, then your header will be copied during installation, and other packages can link with the exported library.
I have found another problem with the driver, You define a node parameter in your config file: src/dvl_a50/config/dvl_a50.yml
led_enabled : true
But in the code you declare....
dvl_a50_ros2.cpp:        this->declare_parameter("enable_led", true);
Therefore, the defined parameter from the config file is unrecognized. It took a while to understang why the node was throwing an exception at configuration...
I have changed the declare_parameter to use "led_enable" insted of "enable_led"... I can create a pull request, or you can simply fix it. Maybe you prefer keeping your parameter definition, therefore a change in the config file is required.
Have a nice week-end!
[cid:c4b282a4-3ffa-4403-a5fb-c68ee39ef709]
Jean-Luc Bedwani, ing., M.Sc.A.
Chercheur
Robotique d'inspection et de maintenance
Institut de recherche d’Hydro-Québec
Tél. :<PHONE_NUMBER>
hydroquebec.comhttps://www.hydroquebec.com/
[cid:fe5aeb09-d02b-4df7-b835-2ee068cb900b]

De : Nikolas Dahn @.>
Envoyé : 18 octobre 2024 12:13
À : ndahn/dvl_a50 @.>
Cc : Bedwani, Jean-Luc @.>; Author @.>
Objet : Re: [ndahn/dvl_a50] Missing installation of the include directory. (PR #1)
Vous n’obtenez pas souvent d’e-mail à partir de @.*** Pourquoi c’est importanthttps://aka.ms/LearnAboutSenderIdentification
ATTENTION ! CE COURRIEL PROVIENT DE L’EXTERNE
Avant d’ouvrir ou de télécharger une pièce jointe ou de cliquer sur un lien, assurez-vous que le courriel provient d’une personne ou une organisation de confiance.
Faites preuve de vigilance, développez les bons réflexes, et ne téléchargez aucune pièce jointe non sollicitée ! Au besoin, cliquez sur le bouton Signaler le message sur votre barre d'outils.
Sorry, only saw your PR now. I'm not sure, but shouldn't this line already handle this?
https://github.com/ndahn/dvl_a50/blob/1e6a5304235facf53ecf82043fb5ba4c8569016b/CMakeLists.txt#L47C3-L47C31
—
Reply to this email directly, view it on GitHubhttps://github.com/ndahn/dvl_a50/pull/1#issuecomment-2422814858, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2YBY7ITELGJO7F65DE2OETZ4EXUPAVCNFSM6AAAAABPFNQNM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRSHAYTIOBVHA.
You are receiving this because you authored the thread.Message ID: @.***>

I realise that my code does not require these .hpp files. Using the node as it is works well. Therefore there is no point going further with the pull request.
However, the fix for the parameter name declaration is required.
[cid:0cc8a67d-4d4b-4b60-a9d3-a3091214cf80]
Jean-Luc Bedwani, ing., M.Sc.A.
Chercheur
Robotique d'inspection et de maintenance
Institut de recherche d’Hydro-Québec
Tél. :<PHONE_NUMBER>
hydroquebec.comhttps://www.hydroquebec.com/
[cid:d9a933ae-820f-4dc1-876e-b0908dbdb852]

De : Bedwani, Jean-Luc @.>
Envoyé : 18 octobre 2024 18:24
À : ndahn/dvl_a50 @.>
Objet : Re: [ndahn/dvl_a50] Missing installation of the include directory. (PR #1)
Hi,
My understanding is that the INSTALL ( TARGETS ... ) defines the name of a target, then the following DESTINATION tags defines the diverse targeted directory name of the installation.
Using your CMakelist.txt
Clean the install directory for the package: rm -r ./install/dvl_a50
Then recompile: colcon build --symlink-install --packages-select dvl_a50
There are no .hpp files in your install/dvl_a50 directory, therefore it is impossible to link with the package library that is installed in the
Then we have to use the INSTALL ( DIRECTORY ...)  or INSTALL( FILE ...) that provides the list of files to be copied in the installation directory.
Without the added install command, the include directory files won't be installed in the process.
If you use the provided INSTALL command, then your header will be copied during installation, and other packages can link with the exported library.
I have found another problem with the driver, You define a node parameter in your config file: src/dvl_a50/config/dvl_a50.yml
led_enabled : true
But in the code you declare....
dvl_a50_ros2.cpp:        this->declare_parameter("enable_led", true);
Therefore, the defined parameter from the config file is unrecognized. It took a while to understang why the node was throwing an exception at configuration...
I have changed the declare_parameter to use "led_enable" insted of "enable_led"... I can create a pull request, or you can simply fix it. Maybe you prefer keeping your parameter definition, therefore a change in the config file is required.
Have a nice week-end!
[cid:c4b282a4-3ffa-4403-a5fb-c68ee39ef709]
Jean-Luc Bedwani, ing., M.Sc.A.
Chercheur
Robotique d'inspection et de maintenance
Institut de recherche d’Hydro-Québec
Tél. :<PHONE_NUMBER>
hydroquebec.comhttps://www.hydroquebec.com/
[cid:fe5aeb09-d02b-4df7-b835-2ee068cb900b]

De : Nikolas Dahn @.>
Envoyé : 18 octobre 2024 12:13
À : ndahn/dvl_a50 @.>
Cc : Bedwani, Jean-Luc @.>; Author @.>
Objet : Re: [ndahn/dvl_a50] Missing installation of the include directory. (PR #1)
Vous n’obtenez pas souvent d’e-mail à partir de @.*** Pourquoi c’est importanthttps://aka.ms/LearnAboutSenderIdentification
ATTENTION ! CE COURRIEL PROVIENT DE L’EXTERNE
Avant d’ouvrir ou de télécharger une pièce jointe ou de cliquer sur un lien, assurez-vous que le courriel provient d’une personne ou une organisation de confiance.
Faites preuve de vigilance, développez les bons réflexes, et ne téléchargez aucune pièce jointe non sollicitée ! Au besoin, cliquez sur le bouton Signaler le message sur votre barre d'outils.
Sorry, only saw your PR now. I'm not sure, but shouldn't this line already handle this?
https://github.com/ndahn/dvl_a50/blob/1e6a5304235facf53ecf82043fb5ba4c8569016b/CMakeLists.txt#L47C3-L47C31
—
Reply to this email directly, view it on GitHubhttps://github.com/ndahn/dvl_a50/pull/1#issuecomment-2422814858, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2YBY7ITELGJO7F65DE2OETZ4EXUPAVCNFSM6AAAAABPFNQNM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRSHAYTIOBVHA.
You are receiving this because you authored the thread.Message ID: @.***>

I see, you're right about that. Will fix it this afternoon!

Includes are now also fixed, somehow they landed in include/include/dvl_a50.


May I ask what version number you use for gradio? This prevents me from running the code normally. Thank you.

May I ask what version number you use for gradio? This prevents me from running the code normally. Thank you.

when I run demo.py, after uploading the video on the website,the terminal shows the following error
Traceback (most recent call last):   File "/home/dellpc/anaconda3/envs/uvd/lib/python3.9/site-packages/gradio/routes.py", line 488, in run_predict     output = await app.get_blocks().process_api(   File "/home/dellpc/anaconda3/envs/uvd/lib/python3.9/site-packages/gradio/blocks.py", line 1438, in process_api     data = self.postprocess_data(fn_index, result["prediction"], state)   File "/home/dellpc/anaconda3/envs/uvd/lib/python3.9/site-packages/gradio/blocks.py", line 1339, in postprocess_data     prediction_value = block.postprocess(prediction_value)   File "/home/dellpc/anaconda3/envs/uvd/lib/python3.9/site-packages/gradio/components/gallery.py", line 187, in postprocess     for img in y: TypeError: 'Gallery' object is not iterable

Hi @happyflying-web, Thanks for the interest! I am using gradio==3.48.0 at that time before the recent gradio update. Please downgrade the gradio and let me know if there are any problems!

Thank you for the version number, it is useful to me！


style(inputrange): add default size to icons

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[FEATURE] Tag project

I suggest tagging the project to make it easy to find by BB users. I'm using the tag wow-betterbags-plugin. Click the gear icon to the right of the main project page to bring up project settings and add tags. (I'm open to using a different tag.)
https://github.com/topics/wow-betterbags-plugin

Sounds good! I've tagged my BB projects with the suggested topic


Allow setting Node URL as HTTP Provider

This'll allow the user to specify any node provider instead of just using Infura

I have read the CLA Document and I hereby sign the CLA

recheck

Does this need some configuration to set NODE_URL in the infrastructure repo?

Yep, I'll do that as well once this PR is merged


iOS markers API

Add markers to public framework API and objective-c classes for polygon, points and polylines.
Updated demo app with example usage.
https://github.com/tangrams/tangram-es/issues/1027

@msmollin you can start review this.


getSnap() not Working

Hello
When I do a getSnaps(), I get an error with this code on snapchat.php:
Notice: Undefined property: stdClass::$iter_token in /home/www/default/vince/snapchat/src/snapchat.php
$offset = end($updates['data']->conversations_response)->iter_token;

No snap is saved in the snap folder
Thank you for your help

Duplicate #148


Deployment failed on Kubernetes 1.7

When I try to deploy on Kubernetes, I got this kind of error:  Error response from daemon: {"message":"invalid header field value \"oci runtime error: container_linux.go:247: starting container process caused \\\"exec: \\\\\\\"pumba --interval 10s kill --signal SIGTERM containerName\\\\\\\": executable file not found in $PATH\\\"\\n\""}
Here's my deployment yaml file:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: pumba
spec:
  template:
    metadata:
      labels:
        app: pumba
      name: pumba
    spec:
      containers:
      - image: gaiaadm/pumba
        imagePullPolicy: Always
        name: pumba
        volumeMounts:
          - name: dockersocket
            mountPath: /var/run/docker.sock
        command:
          - "pumba --interval 10s kill --signal SIGTERM containerName"
      volumes:
        - hostPath:
            path: /var/run/docker.sock
          name: dockersocket

You might want to try and change the command in the yaml to an args list, like in this example. I had the same exact issue, and this change seemed to fix it. Unfortunately, I couldn't tell you why exactly this works and the command doesn't.

Is there any objection to actually change deploy/pumba_kube.yml to use the solution suggested in the comment @valtsi suggested?

@yaron-idan  you can submit PR with fix, if you like


Backport merge.

As discussed, if we want to ease the publication of 0.13.1 later on.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

This is basically git merge master done in the 0.13 branch. No conflict whatsoever. Only thing changed from master is the version.

@soltanmm: this is the scorched earth method for your issue.

LGTM

@ctiller:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: warning same member name (log.o) in output file used for input files: /jenkins/workspace/gRPC_pull_requests/config/dbg/language/c/platform/macos/objs/dbg/src/core/census/log.o and: /jenkins/workspace/gRPC_pull_requests/config/dbg/language/c/platform/macos/objs/dbg/src/core/support/log.o (due to use of basename, truncation, blank padding or duplicate input files)

Pushed various fixes for MacOS on master, and merged here. Let's see.

Things are looking good.

Slave went offline during the build. Seriously ? https://grpc-testing.appspot.com/computer/grpc-mac-node2/log

Started a replacement build at #6394.

Alright, that was almost green, minus a test timeout. Merging.


Omit and well-known symbols

Since keyof T doesn't contain well known symbols - it's hard to replace keys for arrays and other interfaces with well-known symbols
TypeScript Version:  3.5.1
Search Terms:
keyof symbol, well known symbols, omit symbols, exclude symbols
Code
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
type Replace<T, K extends keyof T, V> = Omit<T, K> & Record<K, V>;
type Foo = {
    x: string
    [Symbol.iterator](): any,
};

type Bar = {
    x: string,
};

type MustBe<T extends U, U> = T;
type Test = [
    MustBe<Replace<Foo, "x", string>, Foo>, // error
    MustBe<Replace<Bar, "x", string>, Bar>, // ok
    MustBe<Replace<true[], "length", number>, true[]> // error
];

playground
Related Issues:
https://github.com/microsoft/TypeScript/issues/24622

Another tricky example is Rewrite

playground

This seems to be an observation, not a bug report.

https://github.com/microsoft/TypeScript/issues/31759


fix: missing newline before require

What is the purpose of this pull request?
Fixes missing newline before require in application.rb when running the install template.
application.rb before fix:
# you've limited to :test, :development, or :production.require "view_component/engine"

Bundler.require(*Rails.groups)

After fix:
# you've limited to :test, :development, or :production.
require "view_component/engine"

Bundler.require(*Rails.groups)

Thanks!


Intake stage 2

Codes has not been run yet. please wait for me to test on the robot before merging

Intake going back to a single motor design. Closing for now


Change code formatting in README

I would go with this formatting because it resembles NS_ENUM and results in only 2 lines changed in the diff (that someone will have to review... :wink:).

Thanks!

:sparkles:


TypeScript cannot resolve type of this plugin itself

Open this TS playground
Change TS Config Module to NodeNext
See errors

I've been having to do in my webpack.config.ts, but not quite sure if it's an artifact of ts-node or not.
import _ResolveTypeScriptPlugin from 'resolve-typescript-plugin';
// @ts-ignore
const ResolveTypeScriptPlugin = _ResolveTypeScriptPlugin.default;

Probably relates to #27, please watch that ticket for a fix.

@otakustay on #27:

Having an error on<EMAIL_ADDRESS>with "moduleResolution": "nodenext":
9 import ResolveTypeScriptPlugin from 'resolve-typescript-plugin';
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~

Found 1 error in /Users/otakustay/Develop/reskript/packages/config-webpack/src/partials/base.ts:9

The nodenext module resolution won't automatically use index.d.ts as an entry, we need to put "types": "./index.d.ts" explicitly in package.json, I've manually added this to node_modules/resolve-typescript-plugin/package.json and everything works fine


RFC: Add simple callbacks to cvode

This PR adds a simple callback that returns a Boolean indicated whether to continue the calculation. I am using this in my own work.
I don't expect this to be merged but I would like to get peoples opinion on the approach taken and the general need of such a feature.

I happen to be working on callbacks + event handling as outlined in JuliaDiffEq/DifferentialEquations.jl#64. I'm benchmarking and perfecting the implementation right now, but might be putting something like this into the Sundials simplified interface so that way the DifferentialEquations.jl Sundials wrapper will work seamlessly as well. However, since the Sundials' non-stiff Adams solver benchmarks as not being very fast/efficient in the first place in comparison to RK methods, I'll be taking my time on the Sundials side since it's not really too useful (only the BDF method seems to be efficient, but that's only for specific problems of course).
That said, the full interface will at least need enough to do the interpolation and root finding. The event handling should have a way of using the interpolation to hone in on the correct event time/value. Then you need to pull-back the cached "current value" since for a discontinuity you don't want to use those.

Coverage increased (+0.2%) to 11.245% when pulling 853625f9a06415a6ca23eeae8615e058da271a03 on lstagner:ls/callback into c33c56e25c6682a99aca625fb79f2f07aec689bb on JuliaDiffEq:master.

Coverage increased (+0.2%) to 11.245% when pulling 853625f9a06415a6ca23eeae8615e058da271a03 on lstagner:ls/callback into c33c56e25c6682a99aca625fb79f2f07aec689bb on JuliaDiffEq:master.

Coverage increased (+0.1%) to 17.54% when pulling 58d554bca2a4264a36d4b984b357a38d749c2d7f on lstagner:ls/callback into c7881996cbddf74e8e22bb290233fda2d5e9b061 on JuliaDiffEq:master.

Tests on master v0.6 are failing due to unrelated reasons.


On Windows: Document that System's PATH takes precedence over User's PATH

I installed rye via the Windows installer, and with the latest python toolchain:
PS C:\Users\Me> rye --version
rye 0.30.0
commit: 0.30.0 (c7cbdd955 2024-03-19)
platform: windows (x86_64)
self-python<EMAIL_ADDRESS>symlink support: true
uv enabled: true

The installer put the shims in PATH, so something like this works:
PS C:\Users\Me> python3 --version
Python 3.12.2

However, py and python give different results :
PS C:\Users\Me> py --version
Python 3.11.8
PS C:\Users\Me> python --version
Python 3.11.8

To see the paths:
PS C:\Users\Me> $(get-command python3).source
C:\Users\Me\.rye\shims\python3.exe
PS C:\Users\Me> $(get-command py).source
C:\WINDOWS\py.exe
PS C:\Users\Me> $(get-command python).source
C:\Program Files\Python311\python.exe

Yep, those are a bit older pythons that were on the System PATH, and that takes precedence over the user's path on windows (for some reason).
Deleting the entries from the System PATH works (now both python and python3 are 3.12.2), but may not always be possible or desirable.
Changing the PATH in $PROFILE works too, see https://stackoverflow.com/a/75406878/22316955.

That to me sounds like something I should change. It's supposed to have higher priority.


avoid quadratic time behavior in regex state allocation

This change makes following case much faster
$ xxd modeline.slow
00000000: 7669 3a73 7063 3d5c 5c76 2828 2828 284e  vi:spc=\v(((((N
00000010: 0000 0000 0000 0026 2600 0000 0029 7b31  .......&&....){1
00000020: 3739 7d29 2b29 2b29 2b29 7b31 3739 7d    79})+)+)+){179}
$ vim -u NONE -i NONE -n --cmd 'set modeline' -c 'qa!
70s -> 0.7s

Codecov Report

Merging #4012 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4012      +/-   ##
==========================================
- Coverage   79.14%   79.13%   -0.01%
==========================================
  Files         105      105
  Lines      141111   141111
==========================================
- Hits       111676   111669       -7
- Misses      29435    29442       +7

Impacted Files
Coverage Δ

src/regexp_nfa.c
91.61% <100%> (ø)
:arrow_up:

src/gui_beval.c
61.57% <0%> (-0.88%)
:arrow_down:

src/if_xcmdsrv.c
84.02% <0%> (-0.18%)
:arrow_down:

src/gui.c
58% <0%> (-0.11%)
:arrow_down:

src/window.c
83.49% <0%> (-0.1%)
:arrow_down:

src/ui.c
50.14% <0%> (-0.08%)
:arrow_down:

src/os_unix.c
58.93% <0%> (-0.05%)
:arrow_down:

src/terminal.c
78.21% <0%> (-0.05%)
:arrow_down:

src/channel.c
83.16% <0%> (+0.07%)
:arrow_up:

src/ex_cmds2.c
84.98% <0%> (+0.09%)
: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 b9ddda6...88b51d9. Read the comment docs.

I got 4sec on Windows 7, Intel Core i5 16GB Mem.


ALL-STATE as a button not in drop-down

Is your feature request related to a problem? Please describe.
Users always need to reset ALL-STATE through the drop-down menu although it's most sought after graph view. The site has become much dynamic with hover feature all over. The only safe mouse path is the green one. Make a mistake and you have to reset it.

Describe the solution you'd like
ALL-STATE button near the drop-down menu. It will make the site more user friendly.

You can click in empty space in map(where there is no states) or total row in the table to reset it.

I can't reproduce what you said @nayakrahul

You can click in empty space in map(where there is no states) or total row in the table to reset it.

Double click in map's empty area works for me

Damn 😒

I guess the new icon fixes this


Adding a line does not work as expected

Describe the bug
Adding a line does not work as expected. If I add "AllowUsers nardusg narrem' to end of file it disapear and reapear every time I run the deploy.
To Reproduce
files.line(
{'sshd: Add AllowUsers to sshd_config'},
'/etc/ssh/sshd_config',
'AllowUsers nardusg narrem',
present=True,
)
Expected behavior
To add "AllowUsers nardusg narrem" to end of file and keep it there
Meta

Include output of pyinfra --support.
Support information:
If you are having issues with pyinfra or wish to make feature requests, please
check out the GitHub issues at https://github.com/Fizzadar/pyinfra/issues .
When adding an issue, be sure to include the following:
System: Linux
Platform: Linux-5.7.6-201.fc32.x86_64-x86_64-with-glibc2.2.5
Release: 5.7.6-201.fc32.x86_64
Machine: x86_64
pyinfra: v0.16
Executable: /home/nardusg/.local/bin/pyinfra
Python: 3.8.3 (CPython, GCC 10.1.1 20200507 (Red Hat 10.1.1-1))

How was pyinfra installed (source/pip)?
pip3.8

Include pyinfra-debug.log (if one was created)
attached

Consider including output with -vv and --debug.
attached

debug_dubble_secondrun.txt
debug_dubbel.txt

I believe this is the same issue as #345; I've just released 0.16.1 which should fix this!

Jip, looks good, getting the right behaviour now :+1:


log messages with mixed time (maybe time zone related)

Hi Michael
First, let me congratulate you for the great work and for taking the time to share it. I have installed pycryptobot on my Windows 10 box and it is running, so far no orders were triggered though. I have it using Binance and configured for BTC-BRL pair.
I noticed that there seems to be a mix of local time in some messages and a different time in others. I am posting a screen capture so you can see. My system is configured for ETC-3 (Brazil). You will see that at the time I took the capture (local time was about 16:44) there are previous messages showing time at 19:30. Maybe some messages derive time from the API of Binance? Or something related to time zones.

Let me know if you need more info on the case.

It looks like the data being processed is returning the timestamp from the exchange and the polling of the price is using your local time. I don't think this would actually be causing a problem. It's more of a cosmetic issue. I'll take a look at how I can fix this for you.

I've resolved this issue. The "Current Price" time should now be in the exchange time now instead of your local time.

I still get that issue,
are we supposed to launch script-get_time.py  everytime we run the bot ?


Write test to validate issue 987, but test passes.

https://github.com/autonomousapps/dependency-analysis-gradle-plugin/issues/987

The passing test used:

Gradle 8.4
Kotlin 1.9.0
AGP 8.2.0-alpha16

Build failed


Comments for file _posts/2017-11-05-using-terraform-to-provision-environment.md.

Date : Wed Dec 06 2017 07:15:31 GMT+0100 (CET)
Author : ChrisRisner (https://github.com/ChrisRisner)
Content : Test

Date : Wed Dec 06 2017 08:59:35 GMT+0100 (CET)
Author : jwendl (https://github.com/jwendl)
Content : This is a test.


As mentioned, I am new to the Google API's, so after downloading the source I decided to start with the simple-query example.
I created a Simple API key - with no restrictions on the URI's - inserted it in the code, ran the code and promptly received the above error message, i.e. "HTTP Error: Unable to connect: '0'".
After some playing I was able to identify the problem line as being line #117 in the module IO\Abstract, i.e.:
"list($responseData, $responseHeaders, $respHttpCode) = $this->executeRequest($request);"
A var_dump of $request returned the following:
class Google_Http_Request#21 (14) {
private $batchHeaders =>
array(3) {
'Content-Type' =>
string(16) "application/http"
'Content-Transfer-Encoding' =>
string(6) "binary"
'MIME-Version' =>
string(3) "1.0"
}
protected $queryParams =>
array(3) {
'q' =>
string(19) "Henry David Thoreau"
'filter' =>
string(11) "free-ebooks"
'key' =>
string(39) "yCo0**************Jvima****"
}
protected $requestMethod =>
string(3) "GET"
protected $requestHeaders =>
array(0) {
}
protected $baseComponent =>
string(26) "https://www.googleapis.com"
protected $path =>
string(17) "/books/v1/volumes"
protected $postBody =>
NULL
protected $userAgent =>
string(56) "Client_Library_Examples google-api-php-client/1.0.5-beta"
protected $canGzip =>
NULL
protected $responseHttpCode =>
NULL
protected $responseHeaders =>
NULL
protected $responseBody =>
NULL
protected $expectedClass =>
string(28) "Google_Service_Books_Volumes"
public $accessKey =>
NULL
}
A try-catch block around the offending line returned the following:
I/O Abstract call error: HTTP Error: Unable to connect: '0'
#0 C:\srv\GoogleApi\Google\IO\Abstract.php(120): Google_IO_Stream->executeRequest(Object(Google_Http_Request))
#1 C:\srv\GoogleApi\Google\Http\REST.php(42): Google_IO_Abstract->makeRequest(Object(Google_Http_Request))
#2 C:\srv\GoogleApi\Google\Client.php(499): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#3 C:\srv\GoogleApi\Google\Service\Resource.php(195): Google_Client->execute(Object(Google_Http_Request))
#4 C:\srv\GoogleApi\Google\Service\Books.php(2304): Google_Service_Resource->call('list', Array, 'Google_Service_...')
#5 C:\srv\GoogleApi\simple-query.php(68): Google_Service_Books_Volumes_Resource->listVolumes('Henry David Tho...', Array)
#6 {main}
NB: The line number shown above is 120, i.e. original line number #117 plus three lines for the var_dump and the try-catch.
Technical stuff: Windows 7 Ultimate / PHP 5.5.11 / Apache 2.4
Tested using PhpStorm version 7 / IE version 11 / Firefox version 29
Any assistance greatly appreciated ...

I had the same error with nginx/php-fpm which got fixed by installing & enabling curl php extension.


Clarification on "best practices for discoverability"

We just published our first package on Construct Hub. While reading the information about contributing we came across the bit about APN.

"reach out to us" is unclear. Does this mean creating an issue here on Github, talking to your AWS TAM or sending an email to some AWS team?

Sorry to bother you @addihorowitz , but while I was looking to assist others by having documentation updated I was also hoping for some guidance. We are a partner and would love to have a badge added to our packages. What do we need to do?

Hi @castodius, thank you for the question. Can you please reach out through your TAM? We'll be happy to discuss the next steps.


Views embedded in class libraries raise missing compilation library exceptions on Azure

Title
Loading a view embedded within a class library on Azure causes an exception about missing compilation libraries packages in the System.* or Microsoft.* namespace.
Functional impact
Exception.
Minimal repro steps
I've created a bare repo to reproduce the problem. I created an application and library through VS and did the minimum possible to get an embedded view into the library and display it in a partial on the home page. It should work fine if cloned and run within VS, but fail if deployed to Azure.
https://github.com/svallis/ClassViews
Expected result
Partial rendered correctly.
Actual result
Deployed to azure the test repo throws the following exception on the home page:
InvalidOperationException: Can not find compilation library location for package 'microsoft.codeanalysis.common'
Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths()

Navigating to the /Home/About page without an embedded partial works correctly.
On my full project I was receiving the same error but with a different package:
Can not find compilation library location for package 'system.data.sqlclient'

Is anybody able to provide any insight on this? I assumed it's more likely to find an answer here than going through Azure support, but happy to take any suggestions. The same code deployed to an MS provided docker container works perfectly, just as it does in development, so it seems like it's something in the way Azure is configured.
/cc @pranavkm

MvcRazorCompileOnPublish disables publishing refs assemblies meant for runtime compilation. The idea is that since your application has precompiled views, you wouldn't need the refs for runtime compilation. However, your embedded views require these. There's two ways to fix this

Stick <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish> in your csproj. This should continue publishing the refs directory as part of the publish output.
You could precompile the views in the class library. https://github.com/aspnet/MvcPrecompilation/blob/rel/1.1.0/testapps/ClassLibraryWithPrecompiledViews/ClassLibraryWithPrecompiledViews.csproj has an example of what it takes to precompile views as part of the build. Since your application has a project reference, you would have to additionally change WebApp to copy the precompiled view from the library to the output \ publish directories

That makes perfect sense @pranavkm - thanks very much for the explanation. I've gone with your former suggestion for now, I'm going to hold off on precompiling the views in the class library until it's a little more streamlined (I assume eventually it should be as easy as it is to enable on the application, just flip a bool in the csproj?)


Adjust git.cwd to use a relative path to git root

This is a simple adjustment for the git cwd command to use a relative path to the git root instead of an absolute path. It should keep the behavior identical, but it solves an issue I ran into in my setup (described below).
More details on --show-cdup vs --show-toplevel here:
https://git-scm.com/docs/git-rev-parse#Documentation/git-rev-parse.txt---show-cdup
Motivation:
I ran into this issue during my esoteric obsidian-git setup using WSL2 (following the solution in #141). Basically, I want to use WSL's git instead of native windows git.exe, since I set it up with git-crypt and it has my ssh credentials. I ran into the issue that in this case, git.revparse("--show-toplevel") will return the root as an absolute WSL path (eg, /mnt/c/Users/...). git.cwd() checks path existence prior to actually switching the working directory, but does so using fs - which will be using the windows filesystem instead, and, of course, not find the root directory, and throw an error.
A quick solution is to pass a relative path to git.cwd() instead of an absolute path, as those will work the same way in WSL and Windows filesystems for a given repo. This is exactly what the --show-cdup flag returns. Note that it will be an empty string if we are already at the repo root, hence the additional existence check.
Some sources for my deep dive:
https://github.com/steveukx/git-js/blob/d64b31ca8670edd7af5a7fe5658516f5717c79a8/simple-git/src/lib/tasks/change-working-directory.ts#L7
https://github.com/steveukx/git-js/blob/d64b31ca8670edd7af5a7fe5658516f5717c79a8/simple-git/src/lib/utils/util.ts#L74
https://github.com/kwsites/file-exists/blob/13f0789cbd8df52588acdd185cd33de3b77fb342/src/index.ts#L10C13-L10C18

Looks really promising! Thanks for that fix. Will test later or start next week. Please ignore all tests other than the format test. I've messed them up in my latest commits. But the format seems actually to be wrong.

Have you tested this on normal windows without wsl? I'm getting the following error:
not a git repository (or any of the parent directores): .git

So I don't think the relative cwd is working properly.

Interesting, I havent, let me do some testing as well. I would expect that in this case, git.checkIsRepo() to also fail.

Looks like you were right, the relative path cwd seems to break. Adjusted this feature to resolve the relative path to an absolute one in the nodeJS filesystem, which works both in my WSL case and the windows git.exe case based on my testing

Apologies for the force push, rebased the changes from this issue upon my fork's master to be up-to-date and forgot this issue tracks that branch. No new changes have been introduced since my last comment.


Send file instead of the file content when sending data to Jenkins server

To validate a jenkins pipeline, the job appends the content of the file to the request. However when dealing with large files, the request fails, rendering the plugin useless in that case.
This PR tries to solve this issue by sending the file directly leveraging form-data, and not only the content as URL parameter. It has been achieved by changing the flag used in the request from the -d to -F, and appending the path to the file.

@ckipp01 , yes I have been using the plugin with this change implemented, it's working perfectly fine !
Thanks for the review ;)


Install as vue component

Remove use of instantiate property for each component in the root Vue instance.
Move store constructor and init of store inside the app.vue
Add sample to use component inside a Vue app
Update configuration to minimize the size of mm.min.js and package.json to prepare a package to publish on NPM.
Update readme to use inside a webpack / vuejs project (need a publish on NPM).

Whats the status of this PR? Is there a way, that i can help you?

I have made a NPM package to use it into one of my project.
You can consult the package here.
The source is on my fork.

I have made a NPM package to use it into one of my project.
You can consult the package here.
The source is on my fork.

 I think you have done great there, but need a little update in the readme. for example component not declaring. Didn't found the issue tab there, so that just commenting here. Thanks

I have made a NPM package to use it into one of my project.
You can consult the package here.
The source is on my fork.

 I think you have done great there, but need a little update in the readme. for example component not declaring. Didn't found the issue tab there, so that just commenting here. Thanks


feat(nuxt): enable renderSSRHeadOptions configuration for unhead

🔗 Linked issue

Resolves #25303
Resolves #23085
Resolves #26983

📚 Description
This PR support configure renderSSRHeadOptions  of unhead to help us adjust the output of head tags, such as get more compact HTML result.
export default defineNuxtConfig({
  features: {
    omitLineBreaks: true
  }
})

In production environment , when meta.renderSSRHeadOptions.omitLineBreaks is false:
<!DOCTYPE html><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cc_1Avt4.js">
<link rel="prefetch" as="script" crossorigin href="/_nuxt/CW1WwFCW.js">
<link rel="prefetch" as="script" crossorigin href="/_nuxt/BbxhR_VA.js">
<link rel="prefetch" as="script" crossorigin href="/_nuxt/Cz_w0jng.js">

In production environment , when meta.renderSSRHeadOptions.omitLineBreaks is undefined or true:
<!DOCTYPE html><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bzb4FGiR.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/CX8zz9fU.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/bk47NN6-.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ImDE-rvC.js">

I'm wondering about the best location for this (and possibly other options) for the head - maybe instead in head or in app.head. I'm worried this will clutter features. What do you think @harlan-zw?

If a features Nuxt line break config was going to be added it should handle the line breaks for the entire document, not just the head so I'd say this isn't the right place for it.
Having a way to pass options to the Unhead functions would be the most future proof and it would make sense for that config to exist within the head modules config that is under the meta key.  (although we should probably rename this to head or unhead for v4)
export default defineNuxtConfig({
  meta: {
    renderSSRHead: { // typeof RenderSSRHeadOptions @unhead/schema
      ssrOmitLineBreaks: true,
    }
  }
})

I don't really see a reason why this can't be enabled by default in a production environment for v4 either :thinking:

I am currently following the conclusions of https://github.com/unjs/unhead/pull/297 and have set omitLineBreaks to be disabled by default. However, I think it would be great if omitLineBreaks could be enabled by default in the production environment!
Also, concerning the type of meta.renderSSRHead, if it is expected to align with the RenderSSRHeadOptions from @unhead/schema, perhaps we could structure the configuration as follows to ensure consistency. Additionally, would it be more appropriate to use renderSSRHeadOptions instead of renderSSRHead?
export default defineNuxtConfig({
  meta: {
    renderSSRHeadOptions: { // typeof RenderSSRHeadOptions @unhead/schema
      omitLineBreaks: true,
    }
  }
})

Moreover, as we anticipate the name will change to head or unhead in v4, could we consider adopting this naming convention in v3 to maintain continuity?

I don't think either meta or head currently exists in the Nuxt config options, so I think we're good to add a new key without any issues (though head would conflict with Nuxt 2 types - so it might create issues for module that support both Nuxt 2/Bridge and Nuxt 3+ 🤔)...

Oops! I didn't notice that this would conflict with @nuxt/bridge. It seems that in v3, we can only use meta as the key!

Wouldn't it be better for us to use meta as the key in v3? Additionally, should we set the schema part in schema/src/config/app.ts?

It appears that our decision to use meta as the key in v3 might be a more suitable choice.
Additionally, should we set the schema part in schema/src/config/app.ts?

I didn’t put much thought into the name initially, but now that I’ve thought it over, unhead actually sounds like a better choice. It clearly points out where our dependencies come from and helps us avoid any mix-ups.
https://github.com/nuxt/nuxt/blob/572c36745597ee45e9b57f8f32a24dd99a5b9d42/packages/schema/src/config/app.ts#L108-L110
Should we change it to unhead then?

The bit in schema is an (untyped) backwards-compatible bit. We'd likely need to keep the backwards-compatibility, but people really shouldn't be using it at this point.

We've decided to add unhead key to schema that allows configuring the unhead nuxt module directly, which will unblock configuration of advanced use cases (linking https://github.com/nuxt/nuxt/issues/27031 for headNext support). Would you be happy to update this PR? 🙏

Looks good minus the comment. I'm guessing this will land in v3.12 so probably we want to minimise any new behaviour until v4.


Keyboards shortcuts are broken after 1.31 update on OSX

1.31:
OSX 10.14.2:

Steps to Reproduce:

⌘K, ⌘S should be opening keyboard shortcuts, now it won't. It does work only if launch command palette ⌘+Shift+P, then close it, then ⌘K, ⌘S appears to work for 1 time, then i have to repeat with procedure with summoning command palette to use again ⌘K, ⌘S combination. Also this issue is with all key combination that require to press command after a delay, like npm run scripts: ⌘R, Shift+R

Does this issue occur when all extensions are disabled?: Yes/No

Guys, it's annoying, will you fix it? 😂

lol, nobody cares about the bug.

/duplicate of #68171

@kieferrm also it's not a duplicated. It's issue with focus bug.


style: enhanced spacing on tsc (Technical Steering Committee) page.

Related issue(s)
Resolves #2508

/rtm


[Masthead, mega menu] React:  In the md breakpoint, Mega menu options do not close when clicked outside the menu options

Detailed description
Issue:
Mega menu options do not close when clicked outside the menu options. Anywhere on the page.
Expecting: clicking outside the menu on page with an overlay should close the menu.
Currently: clicking outside the menu on the overlaid page doesn't do anything.
Additional information

Example 1

Example 2

Sept 17, 2021 Comment from Putra regarding the React fix.
The click issue on mobile within the React package is still persistent (see attached).
https://user-images.githubusercontent.com/1815714/133847133-c3e14e82-cda1-49b7-95b1-834f7f3efbf7.mov
Looking at the current React Masthead code, it looks like the setOverlay function defined here is coming from the Core Carbon React package (see the import here). If you look at Carbon Core, you'll see the overlay is not removed when onclick (https://react.carbondesignsystem.com/?path=/story/components-ui-shell--header-base-w-navigation).


Remove Discourse white logo

I love the font and colours^^ On my own forum, I prefer to use my own logo rather than the Discourse white logo too:
https://meta.discourse.org/t/dracula-a-dark-theme-for-discourse/146350/3?u=bloomexperiment

(I use the Alternative logos component when I need another logo for dark mode  https://meta.discourse.org/t/alternative-logos-for-dark-light-themes/88502?u=bloomexperiment )
So this is a PR removing the code that specifically uses Discourse's white logo.

I’m not able to squash commits from my iPad (and I’m a bit new to GitHub still), please feel free to squash and merge


Vickel: Watch additigupta.in

Vickel requests the watch of the watch_keyword additigupta\.in. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

additigupta\.in has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Strict mode

As discussed in #108 this PR adds a strict flag to the config.

@fgnass hey. sorry for the delay on this. we had to put it on hold, as we were getting ready to officially launch stitches.
I'm keen on getting this in for the next release. we need to:

resolve conflicts
bring the changes from https://github.com/modulz/stitches/pull/108 into this
make sure there are tests
set this PR against the canary branch, instead of master

Thanks!


[wip] Testing travis running cache in nginx webdav

Can one of the admins verify this patch?

@damienmg @johnynek This looks to be a version in CI that might be useful wrt the failures.

What are we trying to achieve here?
On Mon, 13 Nov 2017 at 18:45 ianoc-stripe<EMAIL_ADDRESS>wrote:

@damienmg https://github.com/damienmg @johnynek
https://github.com/johnynek This looks to be a version in CI that might
be useful wrt the failures.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/337#issuecomment-343980533,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF4v20ix_VPT26Bsv9CiAZHlAYEnUks5s2HI6gaJpZM4QcAXM
.

Broken build when build with cache + clean + build with cache again

@ianoc @ianoc-stripe you are a champ! thanks.
@damienmg Not the error message here shows that caching fails with the scala rules now:
---8<---8<--- Start of log, file at /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/bazel-workers/worker-4-Scalac.log ---8<---8<---

/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac: line 350: /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java: No such file or directory

---8<---8<--- End of log ---8<---8<---.

Who do we route this to? It is strange that it only comes up with clean? Do the runfiles interact with the CAS differently?

Amazing, well done!
On Mon, 13 Nov 2017 at 21:13 P. Oscar Boykin<EMAIL_ADDRESS>wrote:

@ianoc https://github.com/ianoc @ianoc-stripe
https://github.com/ianoc-stripe you are a champ! thanks.
@damienmg https://github.com/damienmg Not the error message here shows
that caching fails with the scala rules now:
---8<---8<--- Start of log, file at /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/bazel-workers/worker-4-Scalac.log ---8<---8<---
/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac: line 350: /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java: No such file or directory
---8<---8<--- End of log ---8<---8<---.
Who do we route this to? It is strange that it only comes up with clean?
Do the runfiles interact with the CAS differently?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/337#issuecomment-344025648,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF4NEkVgu--XkzcvNegMWol44knFXks5s2JTFgaJpZM4QcAXM
.

@damienmg ping: any suggestion on how to triage this? This is a repro for remote execution not working correctly for the scala rules. I don't see what we are doing wrong, or why we should see this failure.

/cc @buchgr @ngiraldo

And also cc @nlopezgi that might have an idea.

When I have seen this type of error before, its because an absolute path to a file inside the bazel cache is being sent to the remote worker.
It looks like the command that bazel spawns is expecting a file to exist in
"/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java"
But this path likely will not exist on the worker.
We saw a very similar error in the past for go rules that had an env variable that pointed to the folder for the go external repo. Not sure what about scala rules could be using an absolute path to a file inside the bazel cache (maybe its a script that gets hardcoded with the path of the runfiles tree and then shipped to the remote worker?). If you can send a pointer to the source of the problem (java/io/bazel/rulesscala/scalac/scalac: line 350 - could not find it after a quick search in the scala repo https://github.com/bazelbuild/rules_scala) or to any scripts that scala rules will run remotely that interact with the runfiles tree (specifically with ...src/java/io/bazel/rulesscala/scalac/scalac.runfiles... ) I can help you debug further.

Hi @nlopezgi ,
the scalac definition is @ https://github.com/bazelbuild/rules_scala/blob/master/src/java/io/bazel/rulesscala/scalac/BUILD#L1
Its a java_binary, we just invoke this from the scala rules as a wrapper around the scalac compiler.
I don't think in the scala_rules we are doing anything that could change its runfiles of scalac
https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L258
is how we invoke this
with _scalac being defined @ https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L881

the launcher script (bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac when compiled) has the reference:
# Set JAVABIN to the path to the JVM launcher.
JAVABIN=${JAVABIN:-${JAVA_RUNFILES}/local_jdk/bin/java}

yeah, to reiterate: our script is a direct copy of the java one from bazel. Would love to find out if we are putting in a path we shouldn't, but I can't seem to find it.

Looks like bazel is resolving ${JAVABIN:-${JAVA_RUNFILES}/local_jdk/bin/java} to /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java which is a path that does not exist in the remote worker. It should probably be resolving this to something like ($pwd)/..../bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java which would work with remote execution. I'll create a new issue to follow up on fixing that, as, it seems to me, this is a bug in how Bazel is resolving the build variable.

Thanks!
I'd recommend making sure it's not already fixed since I think we're using
a launcher version from 0.4.5
On Wed, 22 Nov 2017 at 20:41 Nicolas Lopez<EMAIL_ADDRESS>wrote:

Looks like bazel is resolving
${JAVABIN:-${JAVA_RUNFILES}/local_jdk/bin/java} to
/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java
which is a path that does not exist in the remote worker. It should
probably be resolving this to something like
($pwd)/..../bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java
which would work with remote execution. I'll create a new issue to follow
up on fixing that, as, it seems to me, this is a bug in how Bazel is
resolving the build variable.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/337#issuecomment-346439176,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF2TIyvUH9DAItcC0yMWAiMBneqwYks5s5Gq6gaJpZM4QcAXM
.

Hmm, looking a bit more at what you are doing in scala rules, it looks like you are setting the JAVABIN for this template (https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt#L230) in this rule (https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L434) using the runfiles_root which is being set here (https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L401). I think this is the source of the error you are seeing. I'm not sure what the right solution is, but this path to the runfiles_root needs to be generated in a way that will be compatible with remote execution (i.e., needs to be a relative path or one that includes ($pwd) to properly resolve from the location where the script runs). So this is not a Bazel error, its an error in the scala rules.

That does look likely broken :( but from my reading of the code I don't think this itself can come into play for the error above, since we see it trying to invoke a java_binary and not a scala_binary.
But ic could be totally missing something there

So are you saying that the scalac.txt file you sent me was produced by a java_binary rule and not by a scala_binary rule? Whoever produced that scalac.txt file is the culprit for the error. I thought it was here https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L428, but if you know the right  place where the scalac.txt is being generated please point me there to debug.

Also, did I understand (a bit too late) Ittai's comment that you are using bazel 0.4.5? If so, switch to using Bazel 0.7.0 could indeed solve the issue if its related to java_binary rules and not scala_binary rules.

we are using a recent bazel, but that launcher script is pointing at bazel 0.4.5 by default. But maybe that launcher script hasn't changed.
Can you suggest how we should correctly generate the path to javabin? This has never been clear to us and always a bit of a hack.

If that launcher script was wrong then i don't think its too related to the scala rules, but to i guess ensure we aren't talking at cross purposes:
03:09:48 (ianoc/testCacheFailure) ~/github/rules_scala$ bazel clean; bazel version && bazel build src/java/io/bazel/rulesscala/scalac
INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
Build label: 0.7.0-homebrew
Build target: bazel-out/darwin_x86_64-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Sun Nov 12 03:11:31 2017<PHONE_NUMBER>)
Build timestamp:<PHONE_NUMBER>
Build timestamp as int:<PHONE_NUMBER>
INFO: Found 1 target...
Target //src/java/io/bazel/rulesscala/scalac:scalac up-to-date:
  bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac.jar
  bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac
INFO: Elapsed time: 3.745s, Critical Path: 2.25s

scalac.txt
my laptop had been using 0.6.1 in this repo, though ci is set to 0.7.0 here -- but attached file/commands i just did now try clarify things. (From what i can tell the scala rules themselves might be broken, but i don't think it comes into the issue we have).
Isolating commands a little bit:
03:13:34 {ianoc/testCacheFailure} ~/github/rules_scala$ bazel clean
INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
03:13:37 {ianoc/testCacheFailure} ~/github/rules_scala$ bazel run --experimental_remote_spawn_cache --remote_rest_cache=http://localhost:9090/bazel-cache src/java/io/bazel/rulesscala/scalac
INFO: Found 1 target...
Target //src/java/io/bazel/rulesscala/scalac:scalac up-to-date:
  bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac.jar
  bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac
INFO: Elapsed time: 5.995s, Critical Path: 3.06s

INFO: Running command line: bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac
java.lang.RuntimeException: Missing required arg JarOutput
	at io.bazel.rulesscala.scalac.CompileOptions.getOrError(CompileOptions.java:130)
	at io.bazel.rulesscala.scalac.CompileOptions.<init>(CompileOptions.java:32)
	at io.bazel.rulesscala.scalac.ScalacProcessor.processRequest(ScalacProcessor.java:47)
	at io.bazel.rulesscala.worker.GenericWorker.run(GenericWorker.java:125)
	at io.bazel.rulesscala.scalac.ScalaCInvoker.main(ScalaCInvoker.java:41)
ERROR: Non-zero return code '1' from command: Process exited with status 1.
03:13:44 {ianoc/testCacheFailure} ~/github/rules_scala$ bazel clean
INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
^[[A
03:13:48 {ianoc/testCacheFailure} ~/github/rules_scala$ bazel run --experimental_remote_spawn_cache --remote_rest_cache=http://localhost:9090/bazel-cache src/java/io/bazel/rulesscala/scalac
INFO: Found 1 target...
Target //src/java/io/bazel/rulesscala/scalac:scalac up-to-date:
  bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac.jar
  bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac
INFO: Elapsed time: 1.774s, Critical Path: 0.15s

INFO: Running command line: bazel-bin/src/java/io/bazel/rulesscala/scalac/scalac
ERROR: Error running program: java.io.IOException: Cannot run program "/private/var/tmp/_bazel_ianoc/1c83cb230054428e22566b8d0a2fa63a/execroot/io_bazel_rules_scala/_bin/process-wrapper" (in directory "/private/var/tmp/_bazel_ianoc/1c83cb230054428e22566b8d0a2fa63a/execroot/io_bazel_rules_scala/bazel-out/darwin_x86_64-fastbuild/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/io_bazel_rules_scala"): error=2, No such file or directory.

Not sure if  --experimental_remote_spawn_cache is important here, we need it to use local worker + cache

I'm not an expert in how build variables work, but it looks like you are using TEST_SRCDIR which according to the documentation (https://docs.bazel.build/versions/master/test-encyclopedia.html) is an absolute path, which means that we're back to a couple of messages before, where it looks like this is a Bazel bug, as using TEST_SRCDIR with remote execution would not be possible. I'll start a thread to discuss with Bazel folk about this issue.

Thanks for the additional info ianoc-stripe, I'm almost 100% sure that the problem is that the build variable you are using here (https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L401) will be mapped by bazel to an absolute path, so yes, the problem is related to your rules (not to java rules) but it needs to be solved on the Bazel side not on your rules.

@nlopezgi I don't think the issue (the error here is a little different so possibly different issues?) can purely be in the scala rules. I made a little test @
https://github.com/bazelbuild/rules_scala/pull/350
I removed ~all of the scala rules and indeed pretty much the whole repo here.
bazel run src/java/io
bazel clean
bazel run src/java/io

https://travis-ci.org/bazelbuild/rules_scala/builds/306012403?utm_source=github_status&utm_medium=notification
is the output

As I said, its likely due to the use of the build variables that have as value absolute paths. I doubt these variables are being used in java rules, but they could be used in many other places in your build other than the scala rules. That is why the fix needs to be done on the Bazel side, these variables should work with remote execution, and if they do, then your rules will work just fine w/o modifications.

Thats great! look forward to the fix :) (tbc that branch I linked to had nothing else in it, its just a java hello world for bazel -- as a repo here ,and output here )

hmm, interesting, you are running with a remote cache, right? My only hypothesis is that the cache might be poisoned, i.e., the path /home/travis/.cache/bazel/_bazel_travis/558b24af2033a53fab9e3ebdf9db3d96/execroot/io_bazel_hello_world/bazel-out/local-fastbuild/bin/src/java/io/io.runfiles/io_bazel_hello_world might correspond to something that was valid for a previous run but not for the current run and you're getting it from the cache? Can you clear the cache and try again to verify? I never use the remote cache directly, so no idea what sort of edge case behavior you're looking at here related to java rules. Please ping back about what the result is after you clear the cache, I want to know if java rules might not be compatible with remote caching.

These are running in travis-ci, so it should be a completely clean set state for each test run/invocation.
My best guess as to the behavior is that not all of the runfiles get stored in the cache (maybe the options we use to bazel controls this somehow).
taking the hello world repo case:
bazel-bin/src/java/io/io
gets generated as a script
io.txt
Asking it for the javabin lookslike:
04:48:17 {master} ~/github/bazel-helloworld$ bazel-bin/src/java/io/io --print_javabin
/Users/ianoc/github/bazel-helloworld/bazel-bin/src/java/io/io.runfiles/local_jdk/bin/java

it gets its JAVA_RUNFILES from:
if [[ "$SINGLEJAR" != 1 || "1" == 1 ]]; then
  if [[ -z "$JAVA_RUNFILES" ]]; then
    while true; do
      if [[ -e "$self.runfiles" ]]; then
        JAVA_RUNFILES="$self.runfiles"
        break
      fi

that winds up meaning the JAVABIN setup @
# Set JAVABIN to the path to the JVM launcher.
JAVABIN=${JAVABIN:-${JAVA_RUNFILES}/local_jdk/bin/java}

does that, but JAVA_RUNFILES from above is :
/Users/ianoc/github/bazel-helloworld/bazel-bin/src/java/io/io.runfiles

which looks like:
04:50:06 {master} ~/github/bazel-helloworld$ ls /Users/ianoc/github/bazel-helloworld/bazel-bin/src/java/io/io.runfiles
MANIFEST

(so nothing but a manifest file)
MANIFEST.txt
I've attached the manifest, so the manfiest refers to all of these files being in the runfiles tree that aren't there.
so best guess is that the caching behavior rn doesn't include everything in the runfiles?

${TEST_SRCDIR} is only evaluated during the execution of the test, not during analysis. I don't think that using it here is a problem.
I see an error message trying to execute process-wrapper:
ERROR: Error running program: java.io.IOException: Cannot run program "/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/_bin/process-wrapper" (in directory "/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/local-fastbuild/bin/src/java/io/io.runfiles/io_bazel_rules_scala"): error=2, No such file or directory.

Where does the error message with /java come from?

The other one comes if you invoke the script directly:
~/github/bazel-helloworld$ bazel-bin/src/java/io/io

style or if a rule tries to use the java produced binary (which i guess are in some way equiv):
---8<---8<--- Start of log, file at /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/bazel-workers/worker-4-Scalac.log ---8<---8<---
/home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac: line 350: /home/travis/.cache/bazel/_bazel_travis/7f7e07d167ded9af0372bc305ceff99e/execroot/io_bazel_rules_scala/bazel-out/host/bin/src/java/io/bazel/rulesscala/scalac/scalac.runfiles/local_jdk/bin/java: No such file or directory
---8<---8<--- End of log ---8<---8<---.
____Building complete.
____Elapsed time: 1.257s, Critical Path: 0.04s

We need to narrow down where this is coming from. Let's treat these as two different bugs.
Can you do a with / without build and tell us if there are any differences in the bazel-bin/src/java/io/io file or its runfiles tree? Also, can you confirm that you're doing bazel build //src/java/io && bazel-bin/src/java/io/io?

Hi @ulfjack, sorry about the delay, long holiday weekend here --
tldr for all this the runfiles tree in cache hits is the same for build and run, but are much different than no-cache hit.
I have a simple test repo if its useful linked above @ https://github.com/ianoc-stripe/bazel-helloworld
the test its doing is just :
set -e

rm -rf /webdav/bazel-cache/ac/*
rm -rf /webdav/bazel-cache/cas/*
bazel build src/java/io
bazel clean
bazel build //src/java/io
./bazel-bin/src/java/io/io

https://travis-ci.org/ianoc-stripe/bazel-helloworld/builds/307893856?utm_source=github_status&utm_medium=notification
(so for any settings or other things i might have strange thats a good place to look)
I've attached i think what you were asking about, ls -lR on both run files tree's, doing bazel build, vs bazel run, with both a cache it + no cache it.
--experimental_remote_spawn_cache --remote_rest_cache=http://localhost:9090/bazel-cache used in all tests
cache_hit_build.txt
cache_hit_run.txt
no_cache_hit_build.txt
no_cache_hit_run.txt

Ok, I can reproduce the issue.

Ok, I have a fix. The problem is that the runfiles tree is not being generated. The reason for that is that we create a symlink tree spawn, which we mark as local, but which is still getting cached by the experimental spawn cache. Unfortunately, this spawn doesn't declare its output files, so the cache result is actually incorrect. Duh!
This is the same issue as #4041.
Unfortunately, I can't think of a workaround, but I'll submit the fix ASAP.

Excellent! Thats great news. if you let me know when its somewhere public i'll grab that diff and start testing our internal builds/CI with it.
Thanks for the quick fix!

https://bazel-review.googlesource.com/c/bazel/+/23350 - I decided to throw in some cleanup on top of the actual fix. The primary fix is in SymlinkTreeHelper.java.

@ulfjack Thats great! thanks for the fix, fixes any internal repo cases I had. Much appreciated!

@ianoc-stripe can we close this and #350?

Yep!

FYI: We have recently added support for Google Cloud Storage as a caching backend [1]. Users have found this useful, because they don't need to run their own remote cache.
[1] https://github.com/bazelbuild/bazel/commit/dd11a0e2e7a143f89bca1be6e4cd56df0640dbe0


Ability to change the size of a MultithreadEventLoopGroup in runtime.

It will be awesome :-)

@trustin do we still want to do this ? If not can we close this ?

Unless there's a good reason to close this, let's leave it open.

Let me close this for now.


bank2sf2 hangs when exporting

I'm attempting to use these utilities to export the music from Mario Party 4, and while other tools seem to work fine, I can't seem to get bank2sf2 working.
Just running it on an ID segfaults as it's missing sample WAV files, but I later figured out that amuse-gui.exe exports them with the exact file names bank2sf2 is expecting. However, trying to export SF2s provided these files causes it to freeze.
The songs I tested with are 0002 (the MIDI output by dump_msm_sng is the Lottery, but the samples don't seem to match up?), alongside numerous other random ones, and nothing seems to be working.
(Just before submitting this issue, I discovered that it was commit ca730b07eb0c5f361e35f543247e1864e9d57c44 that broke this.)

Are you sure you're using the correct bank files? In the example you provided, 0x0002 is the sequence ID, but the group ID is 0x0065. So you should be running bank2sf2 0065 instead. Hope that helps.

Oops, I didn't see that the wiki existed, my bad. 0x0065 is indeed the correct group ID though and exporting that gave the correct instruments, thank you!

Thanks! Glad I could help!


Added support for IP2Location.io API

Category:

One of: Bugfix / Feature / Code style update / Refactoring Only / Build related changes /  Documentation / Other (please specify)

Overview

Briefly outline your new changes...

Issue Number (if applicable) #00
New Vars (if applicable)

If you've added any new build scripts, environmental variables, config file options, dependency or devDependency, please outline here

Screenshot (if applicable)

If you've introduced any significant UI changes, please include a screenshot

Code Quality Checklist (Please complete)

[ ] All changes are backwards compatible
[ ] All lint checks and tests are passing
[ ] There are no (new) build warnings or errors
[ ] (If a new config option is added) Attribute is outlined in the schema and documented
[ ] (If a new dependency is added) Package is essential, and has been checked out for security or performance
[ ] (If significant change) Bumps version in package.json

Hi
I just tested this and was unable to get this working, did the widget work for you?
I used the following code:
      - type: public-ip
        useProxy: true
        options:
          provider: ip2location.io
          apiKey: <api-key>

Directly accessing the API works for me.


Feature request: short expressions

I find myself writing this a lot.

I find having to write :'' a dozen times wasteful. Twig offers a convenience syntax for this. You can write the equivalent expression as:

You can also write an expression for the common foo ? foo : 'no' pattern as:

Would it be possible to get these added to Ractive expressions? At the least, the first one?

foo ?: 'no' can be written as foo || 'no' in JS, but I think that .some_property ? 'active' would be useful and probably very easy to implement.

@MartinKolarik I don't think you can do that in an expression though, it's going to output "true" as a string when foo is true. And vice versa for foo && 'yes'. http://jsfiddle.net/jondum/2f0064ev/
A possible easy solution would be to not cast booleans to strings, then you could do both of those without outputting "true" and "false" to the DOM.

@MartinKolarik I don't think you can do that in an expression though, it's going to output "true" as a string when foo is true. And vice versa for foo && 'yes'. http://jsfiddle.net/jondum/2f0064ev/

I think the original ternary was foo ? foo : 'no' which would also output true, so I think foo || 'no' is correct

The second, while redundant, is ok, but I personally don't like that the first looks like an incomplete ternary. Perhaps .some_property ?? 'active'?

@evs-chris I've seen .some_property ?? 'active' in another templating library but couldn't remember where so I didn't mention it. That form would work too I think.

I often times use the syntax, something && 'is true' || null
the same can be done with ternary, something ? 'is true' : null
(dunno why but my eyes don't ever really "see" the ternary expression)
http://jsfiddle.net/5cwnthrx/

How about simple inline conditionals instead? {{if (prop) 'active'.
Of course, include unless and perhaps the suffix variant: {{'active' unless disabled}}
On Thu, Sep 17, 2015 at 4:28 PM kenny<EMAIL_ADDRESS>wrote:

I often times use the syntax, something && 'is true' || null
the same can be done with ternary, something ? 'is true' : null
(dunno why but my eyes don't ever really "see" the ternary expression)
http://jsfiddle.net/5cwnthrx/
—
Reply to this email directly or view it on GitHub
https://github.com/ractivejs/ractive/issues/2149#issuecomment-141232945.

mmm, well personally, I like the idea of saying something && 'is true' or something || 'is false' and having ractive add on to the end of the expression "|| null", to not have it output the true or false value.
hmmm, that could be really easy to implement...

mmm, well personally, I like the idea of saying something && 'is true' or something || 'is false' and having ractive add on to the end of the expression "|| null", to not have it output the true or false value.

That seems reasonable and straightforward, too. I don't think outputting "false" or "true" as a string value makes much sense IMO.

Throwing in my 2c, I think Ractive should stick to plain JS expressions as much as possible. Ternary ain't that bad. It's readability, familiarity and future-developer friendliness in the expense of a few keystrokes.
Saying this in comparison with Angular, which uses a lot of special expressions in directives that you can't wrap you head around what really runs between those quotes. Worse, directive authors variably use &, @ and = - luckily we don't have to deal with this in Ractive.
Speaking of Angular, this scenario is solved with ng-class. One could just create a decorator that acts like ng-class.

Yea ng-class is nice. But in ractive creating a similar sugar has its own
set of problems.
For example, I sometimes use something like:

        classes: function() {

            var c = {
                type: this.get('type'),
                selected: this.get('selected'),
                dragging: this.get('dragging'),
                ... other stuff
            };

            return reduce(c, function(a, b, p) {
                if(isString(b) && b.length > 0)
                    return a + b + ' ';
                else if(b)
                    return a + p + ' ';
                else
                    return a;
            }, '');

        },

But you have to be super careful with your dependancies. If you have many
other computed properties that are calculation heavy, and you have 100
things on the screen, well it's actually some noticeable lag when ractive
goes through recalculating all the other dependencies because a single
dep changed. So this isn't a great solution in a lot of cases.
On Fri, Sep 18, 2015 at 1:00 PM, Joseph<EMAIL_ADDRESS>wrote:

Throwing in my 2c, I think Ractive should stick to plain JS expressions as
much as possible. Ternary ain't that bad. It's readability, familiarity and
future-developer friendliness in the expense of a few keystrokes.
Saying this in comparison with Angular, which uses a lot of special
expressions in directives that you can't wrap you head around what really
runs between those quotes. Worse, directive authors variably use &, @ and
= - luckily we don't have to deal with this in Ractive.
Speaking of Angular, this scenario is solved with ng-class. One could
just create a decorator that acts like ng-class.
—
Reply to this email directly or view it on GitHub
https://github.com/ractivejs/ractive/issues/2149#issuecomment-141552326.

I don't see a lot of value using string building via javascript expressions and prefer to stick to straight mustache interpolation for classes. Most elements worth denoting with a conditional class typically have at least one static class as well, so it reads much better IMO to use declarative blocks:

...

...

(If you're into minimalism you can always change delimiters and use the straight mustache syntax :)

...

...

I've found using whitespace via indented blocks is really helpful for more complex logic:

= start && i <= end }}
		       sliding
		   {{/if}}
		   {{#if cardstyle.inverse }}
		       inverse
		   {{/if}}'
	style='{{#if isTile }}
			   width: {{ cardview.width }}px;
	 		   height: {{ cardview.height }}px;
	 	   {{/if}}}'>

I did I asked around the interwebs to see what could be brewing for future ES, but beyond existential operator (foo?.bar, which isn't necessary in Ractive templates) there wasn't much consensus for this case.
You could certainly make an argument that ternary expressions are simply "omitable" (including the trailing :) in templates and thereby convince ourselves it's still normal javascript :). But given I use what I outlined above, I don't have a strong opinion, though I tend to share @fskreuz's preference for sticking with vanillaJS.

FWIW, I think the existential operator would be pretty handy for expressions. It would keep things from throwing if you don't account for undefined in your path that has an || trailing it.

@evs-chris agree in expressions esnext syntax is nice.  I was referring to template references.

I do find the :'' bit annoying as well, but despite that my preference is also to stick with vanilla JS. For me the crucial consideration is this: if I were learning a new library and discovered that it had this shortcut syntax I hadn't seen anywhere else, I'd immediately start wondering what other non-standard things it had. And then I'd become anxious, because in order to use the library as intended by its creators, I'd presumably have to go and learn (and remember!) all those little quirks, and I'd have to remember that I couldn't use those tricks outside of the Ractive template environment (or worse, if I was learning JavaScript, I might assume it was legit code and start using it elsewhere, struggling to understand the errors I was generating).
@fskreuz makes a good point about future-friendliness as well – foo ? bar : '' will always mean the same thing to all JavaScript developers.
Here's a possible alternative: http://jsfiddle.net/p3vxpz4n/ – similar to computed properties but more generic, and you can see them in the template. At least in this example, clicking the checkboxes in the first row wouldn't cause the second and third ones to re-evaluate. (Would be nicer if we supported ES6 shorthand properties in expressions...)

+1 for vanilla JS, for the exact same reasons, @Rich-Harris stated.

@Rich-Harris @kouts Note that some of the suggestions here were also plain vanilla JS. e.g. the foo && 'bar' & foo || 'bar'. The only problem with those is that Ractive is outputting "true" and "false" as string values as a result of either expression, which seems rarely valuable. I could see it outputting "truthy" values, but maybe a compromise would be to not output booleans as strings, as suggested?

@matthew-dean I wondered about that, but that too would be confusing. Consider a situation like this:

Should {{progress * 100}} be rewritten as {{'' + (progress * 100)}} so that it's a string and not a number? What about an object that has a useful toString() method, such as a Date object – should that be ignored because it's not a string? There are lots of times when coercion is useful.
We could make an exception for booleans, because they're less likely to be useful. But that'd be really surprising if you were, say, doing some debugging (I often rely on booleans in this context). It would be another thing to have to learn, and another source of frustration if you forgot.
Ultimately, my guide in these matters is the behaviour of mustache.js, since Ractive's templating language aims to be backwards-compatible with Mustache. And there, the only values that aren't coerced are null and undefined:
Mustache.render( '{{foo}}', { foo: 'hello' }); // 'hello'
Mustache.render( '{{foo}}', { foo: 1 }); // '1'
Mustache.render( '{{foo}}', { foo: new Date() }); // 'Wed Sep 23 2015 11:08...'
Mustache.render( '{{foo}}', { foo: NaN }); // 'NaN'
Mustache.render( '{{foo}}', { foo: null }); // ''
Mustache.render( '{{foo}}', { foo: undefined }); // ''
Mustache.render( '{{foo}}', { foo: true }); // 'true'
Mustache.render( '{{foo}}', { foo: false }); // 'false'

I would like to add, that as a noob, the first thing I tried in most cases was foo && 'foo is truthy'. I use that often in string concatenation.. I also use foo || 'foo is not truthy' and that works as expected, assuming foo is what I want to print. often times I use it like this

...

right now I usually use the && like this:

...

if I could get rid of the || null bit, that'd be nice. so, I propose two ideas:

only in the situation where the final expression in the chain is ... && blah, then the expression would be appended with || null. (becoming ... && blah || null). (see http://jsfiddle.net/ttpdg3dL/)

the reason why I don't believe this is a problem for beginners is because I can't think of a situation (debugging or otherwise) where I would want to see 'false' printed out instead of an empty string. it seems more natural to see a 'true' printed than to see a 'false' printed.

perhaps as an option, just as mustache symbols can be changed, there could be an option coerce all non-numeric falsey values to empty string.

both of these would solve a minor inconvenience of a new characters' savings. and, after thinking it over, I like the second option much more than the first. I believe it wouldn't be too difficult to implement either (though I have not looked).

A few observations:

More ES6 in expressions FTW
Ractive's extensibility is awesome and you can tailor the API on your own (
see http://jsfiddle.net/uv3d8hbz/3/):

suppressBool = {
  filter: function ( object, keypath, ractive ) {
    return typeof object === 'boolean';
  },
  wrap: function ( ractive, object, keypath, prefixer ) {
    return {
      teardown: function () {},
      get: function () { return object ? ' ' : ''; },
      set: function ( property, value ) {},
      reset: function ( data ) {
        if ( typeof data !== 'boolean' || data !== object) {
          return false;
        }
      }
    };
  }
};

(there's a bit of a hack using ' ' for true as expressions currently consume adapted values, which probably shouldn't be the case.


Switch from travis-ci to drone.io

Let's see if this works.
New build history page:
https://drone.io/github.com/google/WebFundamentals

hm... drone doesn't show build status here for some reason.

let me try something else. please don't merge yet.

Switch from travis-ci to drone.io

Haven't followed up on this project that much, but I'm interested why.

It's slow on starting builds.
On 21 May 2015 at 20:50, Arthur Verschaeve<EMAIL_ADDRESS>wrote:

Switch from travis-ci to drone.io
Haven't followed up on this project that much, but I'm interested why.
—
Reply to this email directly or view it on GitHub
https://github.com/google/WebFundamentals/pull/1280#issuecomment-104401602
.

It's working fine now but the build is taking 10 min on average :(


Folder structure

In the text analytics notebook, this is the code:

The issue is that sample is in a different path that expected.

I have the same Issue

You need to have run the previous cells to initialize the reviews variable (the code to do that is in the very first cell of the notebook)


Gem won't install on windows when added to group :jekyll_plugins

If my gemfile has:
group :jekyll_plugins do
  gem 'jekyll-archives'
  gem "jekyll-last-modified-at"
  gem "jekyll-livereload"
  gem "jekyll-seo-tag"
  gem "jekyll-sitemap"
  gem "jekyll-gist"
  gem "jemoji"
end

and I run "bundle" I get the error: Could not find gem 'jekyll-archive x64-mingw32' in any of the gem sources listed
However if I change it to:
gem 'jekyll-archives'

group :jekyll_plugins do
  gem "jekyll-last-modified-at"
  gem "jekyll-livereload"
  gem "jekyll-seo-tag"
  gem "jekyll-sitemap"
  gem "jekyll-gist"
  gem "jemoji"
end

Then it works fine.

Maybe the problem is in plural vs singular? jekyll-archive x64-mingw32 should actually be jekyll-archives x64-mingw32 ?

This hasn’t been reproduced, so for now it seems we can chalk it up to ghosts in the machine.


Compare values without materialization

Problem description
The NativeStore and LmdbStore currently use a separate value database that contains mappings from (internal) value IDs to the corresponding data.
Each time when a value instance is required the value database is queried and an object of the corresponding type (IRI, BNode, Literal) is created.
The LmdbStore already has an optimization in that it creates lazy values: The initialization of the data is postponed until it is required, e.g., for equals() or hashCode(). This is possible because the value type is encoded within the internal ID.
With this optimization the equals() method only requires materialization if an internal LmdbValue and an external value are checked for equality.
But the hashCode() method always requires materialization which is a problem if lazy values are put into a hash map.
We mainly have three options to improve this situation:

use a global ID service in RDF4J and compare values solely based on those IDs (and also use those IDs for hashCode)

It is hard to implement global IDs because different SAILS may use different IDs. Before comparing two values they have to go through the global ID service.

encode the hash codes within the IDs:

possible scheme: [1 byte value type + other flags, up to 4 bytes for hash code, up to 3 bytes for sequence number]
This approach requires that the hash codes are stable between current and future versions of RDF4J.
We can store up to 2^24 = 16777216 for each hash code.

use a persistent mapping table ID -> hash code:

This might also be a feasible approach that prevents full materialization but would be slower than 2 as it requires to touch the mapping table (possibly a part of the value store).
This approach requires that the hash codes are stable between current and future versions of RDF4J.

Preferred solution
I think that number 2 would be the easiest solution while number 1 would probably be the fastest.
Are you interested in contributing a solution yourself?
Perhaps?
Alternatives you've considered
No response
Anything else?
No response

I have been thinking about this as well, and I had a variation of option 1 in mind. Which is instead of using the generic java collections use specialized collection implementations handed out by a SAIL.
I started on this with the makeSet method in the EvaluationStrategy. This can be expanded to a method Set<v extends Value) makeValueSet(), a set can make sure that anything put into it is transformed into a store backed value if possible. Some rough code below to illustrate the idea.
public class LmdbValueSet extends AbstractSet<Value> {
	  private final ValueStore backingValueStore;
	  private final org.eclipse.collections.api.set.primitive.LongSet storeKnownValues = new ...
	  private final HashSet<Values> notKnownToStoreValues = new ...

	  public boolean add(Value v) {
		  if (v instanceof LmdbValue lv && lv.getValueStoreRevision().getValueStore() == backingValueStore) {
			  return storeKnownValues.add(lv.getInternalID());
		  } else {
			  long id = backingValueStore.getId(v, false);
			  if (id == LmdbValue.UNKNOWN_ID) {
				  return notKnownToStoreValues.add(v);
			  } else {
				  return storeKnownValues.add(id);
			  }
		  }
		  return false;
	  }

  //similar delegating logic for all other methods.
}

This set being specific to the LmdbStore can implement much more memory and cpu efficient code. Also these collections may be transparently backed by a disk based store if required.
For the rest a better hashCode algorithm in general would be nice. As the one used provide by String is not that good in any case.

@JervenBolleman This looks interesting. Have you thought about this would integrate with custom service functions and/or federation?

Some more ideas:
Async IO to produce Values that will be materialized in the future. Async Nio has a nifty way of handling closing of a resource where you can call one method and have it finish complete all the futures. We could the return an iterator from the store and have it materialize everything when it gets closed. Or the inverse of forcing materialization during iteration if we need to close a file handle.
Java 9+ also has a Cleaner class that can be used to close and release things similarly to finalize.
When calling .equals(...) with two not-yet-materialized Values these can use their own logic to realize that they can use their internal values instead of materializing, but this doesn't work for hashCode().
What we could do for hashCode() is to add a localHashCode() method through an interface, and have a wrapper class that maps hashCode() to localHashCode(). The goal is to do new HashSet<LazyValue<NativeValue>>(). That way we are certain that we only put NativeValue objects in the set, so can always use the localHashCode() method and never materialize the data.


Usage for "dynamic" UPDATE queries?

I understand that this function allows me to write "dynamic" insert queries, given an array of column names and one with the corresponding values:
let query = format(INSERT INTO sometable(%I) VALUES(%L);, arrColumn, arrValue);
However, how can I do the same with an UPDATE query where the syntax uses pairs (... SET column1=value1, column2=value2, ...)?
I'm sure there must be a way but didn't find yet. Thanks in advance for your help.

I used like this
`
import Format from 'pg-format';
// ...
const sampleObject = {
id: 1,
name: sample,
code: sample_code
}
let sets = [];
for (let key in sampleObject) {
sets.push(Format('%I = %L', key, sampleObject[key]));
}
let setStrings = sets.join(',');
const query = Format(UPDATE equipment SET %s WHERE id = %L, setStrings, eq.id);
const result = await client.query(query);
`


MavlinkStreamScaledIMU

Hi,
This PR corrects the gyro struct type in MavlinkStreamScaledIMU and adds the missing MavlinkStreamScaledIMU2 and MavlinkStreamScaledIMU3 classes to the class definitions.
If you have any questions on this PR please let me know.
Thanks!
-Mark

Instead of actually duplicating the code what do you think about using a template like MavlinkStreamActuatorControlTarget?
https://github.com/mcsauder/Firmware/blob/54c935efa692362f870c2ebd90cda772b04bb912/src/modules/mavlink/mavlink_messages.cpp#L2537-L2562

Still fails to build.

Thanks for the ping @LorenzMeier!  Investigating further. :/

@LorenzMeier, @dagar, @mhkabir,
Using the current PX4/Firmware master branch, (as well as this PR), I see values reported back that do not make sens when looking at the SCALED_IMU message specification:

I am adding this comment because the message values are consistent between the master branch and this PR.  However when converting to m/s^2, the Z value is not 1G as expected:

What IMU is that from? Potentially nothing other than the MPU9250 was used with this message. Other drivers may report their "raw" readings differently.
@ChristophTobler

Thanks @mhkabir, those readings are from a stock pixracer, and both the mpu20602 and mpu9250 are using the mpu9250 driver, correct?

I finally figured out what the issue is with my hardware and why SCALED_IMU2 isn't being sent...
The sensor is physically missing from my hardware. Ughhhh!

Hi everyone,
I have hardware with two IMU's, both running the mpu9250 driver, you can see that they both get started here, (I am becoming more keen on these details :) ):

Given the current PX4/Firmware master branch mavlink_main.cpp and simply adding SCALED_IMU, SCALED_IMU2, and SCALED_IMU3, to the config stream list, as such,

I see the following:

I think that this PR is correct and is acceptable, however, something else is not right.
If anyone can offer me advise I very much appreciate it.
Thank you all for your review of this PR.
-Mark

Here's what I think happens:
You start three mavlink streams (SCALED_IMU1/2/3) at 50Hz but only start two drivers (uorb id 0 and 1). This means that SCALED_IMU1/2 are publishing data from uorb topics 0 and 1 (both at 50Hz) to the same mavlink msg (MAVLINK_MSG_ID_SCALED_IMU). This results in one mavlink stream at 100Hz with data from two drivers.

Thanks @ChristophTobler !  I appreciate your insights.  I'm able to get both SCALED_IMU and SCALED_IMU2 messages separately when I eliminate the templating, so I clearly have an error in my templated approach.  I've pushed up a functioning commit and will make another attempt at templating the method.
Thanks @mhkabir and @dagar for your input!

Thanks for your help on this PR everyone.  I am rebasing/re-starting the PR in #9556.


RFC5234 common rules

Fixes #65.

Codecov Report

Merging #66 (214d88d) into main (5000dbe) will decrease coverage by 2.73%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #66      +/-   ##
==========================================
- Coverage   97.11%   94.38%   -2.74%
==========================================
  Files           3        4       +1
  Lines         589      605      +16
  Branches       52       58       +6
==========================================
- Hits          572      571       -1
- Misses         17       34      +17

Impacted Files
Coverage Δ

...ore/shared/src/main/scala/cats/parse/Rfc5234.scala
0.00% <0.00%> (ø)

core/shared/src/main/scala/cats/parse/Parser.scala
97.78% <0.00%> (-0.19%)
:arrow_down:

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 5000dbe...214d88d. Read the comment docs.

Really nice tests, BTW. Great work indeed!

Do we want to remove that octet rule before the next release?  If not, I'll follow up with some prose.


dribbling argolis

👋  Hey team, I wanted the tutorial to work with Argolis. I had to make some changes mostly so the compute engine default service account gets created after iam.automaticIamGrantsForDefaultServiceAccounts is set to not enforced.
I'm not sure if you want to include this as a separate branch for our internal use or I can pop it somewhere else?

Thanks Felipe! I'll contact you directly for a chat offline about how best to streamline Googlers' use of these tutorials -- in general I think we'd want to avoid directly making changes to customers' organizational policy, partly from a "good citizen" perspective, and partly because it's likely that users running this tutorial won't have the permissions required. One approach could be a conditional variable that, when set for internal use, enables the upfront policy modifications. LMKWYT!

Hi @feliperyan -- I've added an upfront script and YAML policy documents that Google-internal users can use to configure policies for their projects so they can work through these tutorials. This will be in the next release, so I am closing this PR. Many thanks for highlighting this!


Add data view component & upgrade to Ext 6 & Sencha Cmd v<IP_ADDRESS>

Nice work @antonfisher. But we have to add more components.

Hi @vadimpopa,
Thank you for your pull request!
Let me configure Sencha v6 on my side, figured out with CI and I'll merge it.

Done, swapped the args, cleaned the tests and codegen.json

Thank you @vadimpopa!
I will fix CI then update npm.

Awesome. Also I've been working on the Ext.Component. Sth like:
`
import {ExtJsComponentBase} from './base.js'
export class ExtJsComponent extends ExtJsComponentBase {
setHtml (callback, value) {
var err;
    try {
        this.extJsComponent.setHtml(value)
        err = false
    } catch (e) {
        err = 'failed to call setValue() method'
    }

    return callback(err ? new Error(`cannot fill component "${this.componentType}": ${err}`) : null)
}

}
`
Would be ok to name it like ?
eTT().component

Looks good to me, except arguments order here: setHtml (callback, value).

@vadimpopa could you push changes without ./dist/mocha-extjs.js file, I'm trying to update it just before release on npm, to keep commits cleaner between releases, and have stable version in repository.

sure.

So I think it's good to have in ExtJsComponent for custom components such generic method:
`
callCmpMethod (callback, method, args) {
var cmp = this.extJsComponent;
    cmp[method].call(cmp,args)
    callback(null)
}

`
So in tests when calling setValue, cmp's value is updated along with the DOM value
   it('Is component defined "customComponent"', function (done) {         let cmp = eTT().component('customComponent');         cmp.callCmpMethod('setValue', ['yay'], done);     })
What you think ?

Yes, good idea to have generic method.
But let's keep aliases for often used methods like setValue (and for backward compatibility too).

PR was published NPM v 0.1.71