Create method on model returning wrong primary key value

Laravel Version: 5.7.20
PHP Version: 7.2.10
Database Driver & Version:
DriverName => "libmsodbcsql-17.2.so.0.1",
DriverODBCVer => "03.52",
DriverVer => "17.02.0000",
ExtensionVer => "5.3.0",

Description:
When creating records of a model using create the returned record will have a wrong value for primary key if the table has a trigger on it which itself creates (inserts) a record in another table.
In effect, the returned primary key value is the value of the record inserted by the trigger and not of the just created record of the model. Same behavior is observed if fresh() method is chained on the create method.
I suspect this is happening because the driver is using @@IDENTITY or SCOPE_IDENTITY whereas IDENT_CURRENT( 'table_name' )  should have been used to get the LastInsertId after the create step.
Here is the relevant section from the SQL Server 2017 documentation (https://docs.microsoft.com/en-us/sql/t-sql/functions/identity-transact-sql?view=sql-server-2017):
"@@IDENTITY and SCOPE_IDENTITY return the last identity value generated in any table in the current session. However, SCOPE_IDENTITY returns the value only within the current scope; @@IDENTITY is not limited to a specific scope.
IDENT_CURRENT is not limited by scope and session; it is limited to a specified table. IDENT_CURRENT returns the identity value generated for a specific table in any session and any scope. "
Steps To Reproduce:
Create a table (with an auto incrementing primary key) and add a trigger to it which inserts another record in another table). Then calling the create method on the model will return the just created record with the wrong value for the primary key field.

I believe the relevant code in the source is on line 46 of Illuminate/Database/Query/Processors/SqlServerProcessor.php
'SELECT CAST(COALESCE(SCOPE_IDENTITY(), @@IDENTITY) AS int) AS insertid'

I just tested this directly in the database and SCOPE_IDENTITY() returns the correct primary key.
Somehow, SCOPE_IDENTITY() returns null in your case and you receive the incorrect result of @@IDENTITY.

I have encountered this issue too when using Merge Replication.
I actually forgot I hadn't submitted my patches for this already.
I've thrown together a branch https://github.com/darksaboteur/framework/commit/0c5a0e23d078292f03d93eadd57cc0731890b1ce with my fixes copied to it for you to look at. I don't have time to test it now, so there may be some syntax errors or other trivial issues.
Please test it and let me know if it fixes triggers too so I can create a Merge Request for it.

Here is a shorter version of @darksaboteur's fix: https://github.com/staudenmeir/framework/commit/b4a8f81c35c27e65c3fbc92c38afb84bbffcec44
@amestsantim Does it work for you?
@darksaboteur Now that SCOPE_IDENTITY() works, do we still need COALESCE(SCOPE_IDENTITY(), @@IDENTITY)? Shouldn't SCOPE_IDENTITY() cover all cases?

Closing pending author inactivity. Feel free to reply if this is still an issue.

I'm not sure I understand why this issue is being closed. Has the bug been fixed in laravel/framework?
If so, great but if not, by closing the issue, we're just kicking the ball down to the next person who will create a new issue for it.

@amestsantim I closed it because you didn't reply anymore. Can you please check the answers by @darksaboteur and @staudenmeir and answer their questions?

Alright, give me a few days to patch my installation with @staudenmeir 's fix and test it.

Closing this issue because it's inactive, already solved, old or not relevant anymore. Feel free to reply if you're still experiencing this issue.

I am experience the same issue. Using laravel 5.8 and php 7.3
To reproduce
Create a table
CREATE TABLE `seasons` (
  `season_id` int(4) NOT NULL,
  `name` varchar(30) DEFAULT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`season_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Create a model Season.php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Season extends Model
{
    protected $table = 'seasons';
    protected $primaryKey = 'season_id';
    protected $guarded = [];
}

On tinker execute App\Season::create(['season_id'=>2018, 'name' => 'Season 2018']).
That returns the next message
App\Season {#4086
     season_id: 0,
     name: "Season 2018",
     updated_at: "2019-08-03 20:48:40",
     created_at: "2019-08-03 20:48:40",
   }

My question is.. Why isn't returning the season_id correctly? On the database the season_id was saved correctly.

@skalero01 That's a different issue. You need to set public $incrementing = false; in your model.

Thanks @staudenmeir! it worked :)

@staudenmeir @skalero01 I need to make use of id immediately after create().  Setting $incrementing = false breaks that ability.  For example:
$u = User::create(...);
$c = Car::create([
 'name' => 'blah',
 'user_id' => $u->id
]);

In this example, $u->id is actually null -- not even $u->fresh() works.  However, if I leave $incrementing = true then I begin to receive incorrect values for $u->id.  This is borne out by trying to use DB::getPdo()->lastInsertId() which also reports the wrong value and eventually becomes more and more incorrect.
NOTE:  I'm sure there is a "cause" for the value getting off, but I have no earthly idea what it is.
Currently, I mitigate the problem by re-querying for the object based on identifiable traits, but this obviously isn't the fix.

@humblecoder have you tried using the fresh function?
$u = User::create(...);
$u = $u->fresh();
$c = Car::create([
 'name' => 'blah',
 'user_id' => $u->id
]);

@skalero01 I have.  It returns null.   My guess is due to the fact that it attempts a lookup based on a bad id.
I need to do some digging into what makes the PDO tick.  Is it possible to reset or "re-calibrate" the results of DB::getPdo()->lastInsertId()? 🤔   It's very strange that it gets "off track" and never recovers.

I begin to receive incorrect values for $u->id

@humblecoder What does "incorrect" mean?   It's as if it has its own auto-increment mechanism.  It has gotten as high as +4 off and seems it would keep climbing if I didn't manually address the issue.

I have the same issue. I had tables and inserted thee some users but I had problems with constraint. I created a dump and deleted all the tables. Then I edited dump (MySQL) and change all AUTOINCREMENT to 1 so that tables start ёшвё from 1. Created DB again.
Now when I insert user it inserts it into DB with id 1 but User::create returns id 17.

Can reopen this issu.
I have the same problem
I have many table with trigger so model don't take the good primary key value.

This is still an issue in 2021
$post = Post::create([             'author_id' => $request->author,             'series_id' => $request->series,             'content' => $request->content,         ]);
After calling create method, $post->id will have a wrong value.

Hey @peter-olom please see these comments on issue #32883 where you posted the same comment above:
https://github.com/laravel/framework/issues/32883#issuecomment-916900646
https://github.com/laravel/framework/issues/32883#issuecomment-916902336


refactor sorted map

#617

Pull Request Test Coverage Report for Build 2002
Details

49 of 51 (96.08%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.05%) to 88.554%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sorted_map/map.mbt
47
49
95.92%

Totals

Change from base Build 2001:
-0.05%

Covered Lines:
3497

Relevant Lines:
3949

💛  - Coveralls

Pull Request Test Coverage Report for Build 2015
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

49 of 51 (96.08%)  changed or added relevant lines in 2 files are covered.
3 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.9%) to 89.471%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sorted_map/map.mbt
47
49
95.92%

Files with Coverage Reduction
New Missed Lines
%

math/trigonometric.mbt
1
96.43%

immut/hashmap/HAMT.mbt
1
71.43%

immut/hashset/HAMT.mbt
1
73.85%

Totals

Change from base Build 2001:
0.9%

Covered Lines:
3535

Relevant Lines:
3951

💛  - Coveralls

Pull Request Test Coverage Report for Build 2016
Details

49 of 51 (96.08%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.05%) to 89.471%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sorted_map/map.mbt
47
49
95.92%

Totals

Change from base Build 2014:
-0.05%

Covered Lines:
3535

Relevant Lines:
3951

💛  - Coveralls

Pull Request Test Coverage Report for Build 2017
Details

50 of 51 (98.04%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 89.496%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sorted_map/map.mbt
48
49
97.96%

Totals

Change from base Build 2014:
-0.03%

Covered Lines:
3536

Relevant Lines:
3951

💛  - Coveralls

Pull Request Test Coverage Report for Build 2018
Details

50 of 51 (98.04%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 89.496%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sorted_map/map.mbt
48
49
97.96%

Totals

Change from base Build 2014:
-0.03%

Covered Lines:
3536

Relevant Lines:
3951

💛  - Coveralls

Pull Request Test Coverage Report for Build 2021
Details

51 of 51 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.522%

Totals

Change from base Build 2014:
0.0%

Covered Lines:
3537

Relevant Lines:
3951

💛  - Coveralls

Pull Request Test Coverage Report for Build 2043
Details

51 of 51 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.308%

Totals

Change from base Build 2039:
0.0%

Covered Lines:
3525

Relevant Lines:
3947

💛  - Coveralls


[SPARK-20876][SQL]if the input parameter is float type for ceil or floor,the result is not we expected

What changes were proposed in this pull request?
spark-sql>SELECT ceil(cast(12345.1233 as float));
spark-sql>12345
For this case, the result we expected is 12346
spark-sql>SELECT floor(cast(-12345.1233 as float));
spark-sql>-12345
For this case, the result we expected is -12346
Because in Ceil or Floor, inputTypes has no FloatType, so it is converted to LongType.
How was this patch tested?
After the modification:
spark-sql>SELECT ceil(cast(12345.1233 as float));
spark-sql>12346
spark-sql>SELECT floor(cast(-12345.1233 as float));
spark-sql>-12346

Can one of the admins verify this patch?

ok to test

ok to test

Test build #77345 has started for PR 18103 at commit 37f0ff3.

Test build #77345 has finished for PR 18103 at commit 37f0ff3.

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

Merged build finished. Test PASSed.

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

Test build #77444 has started for PR 18103 at commit 4cdb44e.

Test build #77444 has finished for PR 18103 at commit 4cdb44e.

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

Merged build finished. Test PASSed.

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

Could you remove the sql statements from opterators.sql after you moving them to mathExpressionSuite?

LGTM except one comment.

Test build #77450 has started for PR 18103 at commit 660c038.

Merged build finished. Test FAILed.

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

Test build #77458 has started for PR 18103 at commit 93baa57.

Test build #77458 has finished for PR 18103 at commit 93baa57.

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

Merged build finished. Test PASSed.

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

Thanks! Merging to master.

Could you open another PR to backport the fix to 2.2? Thanks!


Module 1.3 Assignment

👋 for this assignment, please include a screenshot demonstrating git diff and git diff --staged

@shadowcgray Thanks for completing this. I'm sure I was able to tell from the rest of the assignments that you were familiar with Git, hence the interview! Thank you again for your time today.


add fully defined ModelUsage type

Improve the usage attribute of ResponseUsage, now defined in its own type ModelUsage.
With OpenAI Realtime API, there are 6 different token types, all with different prices.  The data is already present at runtime but not expressed in livekit's typings.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Marty Saxton seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Gmail API Cyrillic Support

I'm working with the example SendMessageWithAttachment.java. It works fine with English email body. However Cyrillic letters (Ukrainian) work only in the email's title and attachments file names. Body text was not recognized in Cyrillic.
Example without attachments and without MIME works good with Cyrillic text.
So, is there any way to send non-English letters with Gmail API with attachments and MIME?
Example without attachments (without MIME) https://github.com/googleworkspace/java-samples/blob/main/gmail/snippets/src/main/java/SendMessage.java
Example with attachments https://github.com/googleworkspace/java-samples/blob/main/gmail/snippets/src/main/java/SendMessageWithAttachment.java

Screenshots https://github.com/JavaCodeSamples/TestGmailAPI/tree/main/docs
Code https://github.com/JavaCodeSamples/TestGmailAPI/blob/main/src/main/java/org/example/GmailQuickstart.java


No channel notification

Describe the bug
When I use the latest discord GX classic theme, I cannot see the discord channel notifications, so when somebody on any server send a message, I cannot see where he wrote a message.
To Reproduce
Steps to reproduce the behavior:

Go to Discord on Opera GX side bar
Click on a Discord you have a notification
Scroll down to see where the notification is
See nothing because the channel notification won't show

Expected behavior
See a channel notification
Screenshots

Desktop (please complete the following information):

Discord - OperaGX
OperaGX
Latest OperaGX when this bug report was created

UPDATE
The previous version of Discord GX Classic Theme was 4.1 on Opera GX, but now Opera GX update Discord GX Classic Theme and it's now the version 4.2 and it work perfectly !


fix(deps): update terraform-module

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/cbr/ibm (source)
module
patch
1.22.0 -> 1.22.1

terraform-ibm-modules/kms-all-inclusive/ibm (source)
module
minor
4.11.8 -> 4.13.0

Release Notes

terraform-ibm-modules/terraform-ibm-cbr (terraform-ibm-modules/cbr/ibm)
v1.22.1
Compare Source
Bug Fixes

only allow private COS endpoint access for all services except VPC which will use direct endpoint (#453) (264dc92)

terraform-ibm-modules/terraform-ibm-kms-all-inclusive (terraform-ibm-modules/kms-all-inclusive/ibm)
v4.13.0
Compare Source
Features

key_protect_crn output has been updated to kms_instance_crn and now supports outputting when using an existing KMS instance (#490) (a16c709)

v4.12.1
Compare Source
Bug Fixes

add support_details to the DA (#489) (0dedf43)

v4.12.0
Compare Source
Features

The default value for force_delete_key_ring and force_delete has been updated to false in the keys input variable (#485) (4755ec0)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185: Terraform used the selected providers to generate the following execution
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185: plan. Resource actions are indicated with the following symbols:
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:   ~ update in-place
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185: Terraform will perform the following actions:
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:   # module.key_protect_all_inclusive.module.kms_key_rings["icd"].ibm_kms_key_rings.key_ring will be updated in-place
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:   ~ resource "ibm_kms_key_rings" "key_ring" {
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:       ~ force_delete  = true -> false
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:         id            = "icd:keyRing:crn:v1:bluemix:public:kms:eu-de:a/abac0df06b644a9cabc6e44f55b3880e:3a9361fd-e6c4-4ec9-8a4e-4f453d4257e7::"
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:         # (3 unchanged attributes hidden)
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:     }
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:   # module.key_protect_all_inclusive.module.kms_keys["icd.redis-advanced-upg-rinku7-redis"].ibm_kms_key.key will be updated in-place
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:   ~ resource "ibm_kms_key" "key" {
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:       ~ force_delete            = true -> false
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:         id                      = "crn:v1:bluemix:public:kms:eu-de:a/abac0df06b644a9cabc6e44f55b3880e:3a9361fd-e6c4-4ec9-8a4e-4f453d4257e7:key:822c5c64-ec45-4f5c-8b4e-a6150343b906"
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:         # (14 unchanged attributes hidden)
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:     }
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185:
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185: Plan: 0 to add, 2 to change, 0 to destroy.
TestRunAdvancedExampleUpgrade 2024-05-31T23:43:48Z command.go:185: ╷

The change is confined to the complete example used for upgrade testing, related to the KMS module upgrade. Skipping upgrade test.

/run pipeline

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


Let user choose gas price when withdrawing ETH

Show a field to choose gas price on the confirmation screen. Should also show the user what the gas fee will be, i.e. how much ETH will be withdrawn. Could use the same UI motif as the relayer withdraw fee.

Closed by #206


Segmentation fault: 11

(retinaface) root@docker20:/data2/yanmengkai/face/RetinaFace# pip install mxnet
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: mxnet in /root/anaconda3/lib/python3.7/site-packages (1.5.0)
Requirement already satisfied: numpy<2.0.0,>1.16.0 in /root/anaconda3/lib/python3.7/site-packages (from mxnet) (1.16.4)
Requirement already satisfied: graphviz<0.9.0,>=0.8.1 in /root/anaconda3/lib/python3.7/site-packages (from mxnet) (0.8.4)
Requirement already satisfied: requests<3,>=2.20.0 in /root/anaconda3/lib/python3.7/site-packages (from mxnet) (2.22.0)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /root/anaconda3/lib/python3.7/site-packages (from requests<3,>=2.20.0->mxnet) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /root/anaconda3/lib/python3.7/site-packages (from requests<3,>=2.20.0->mxnet) (1.23)
Requirement already satisfied: idna<2.9,>=2.5 in /root/anaconda3/lib/python3.7/site-packages (from requests<3,>=2.20.0->mxnet) (2.7)
Requirement already satisfied: certifi>=2017.4.17 in /root/anaconda3/lib/python3.7/site-packages (from requests<3,>=2.20.0->mxnet) (2018.8.24)
(retinaface) root@docker20:/data2/yanmengkai/face/RetinaFace# python
Python 3.7.0 (default, Jun 28 2018, 13:15:42)
[GCC 7.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.

import mxnet

Segmentation fault: 11
Stack trace:
(retinaface) root@docker20:/data2/yanmengkai/face/RetinaFace#

Can you please provide some information about your environment?
What to do:
1. Download the diagnosis script from https://raw.githubusercontent.com/apache/incubator-mxnet/master/tools/diagnose.py
2. Run the script using `python diagnose.py` and paste its output here.

Let's track segmentation fault issues in #17043


fixed context problem for gcloud app engine

The requests to the app engine don't contain the authorization token

reverted, closing MR


Add back in license chooser

Currently in the search interface, the license chooser has no effect, because all the original data was CC-BY and therefore allowed all uses anyway. We've since added 500px results, and so need to make the results respect the license choice.

Fixed in the code, but will require a new index mapping. Spun up a new ES instance and populating that now.

This now works as expected.


WINDOW_COVERING

In the accessory types I saw a variable for window covering (WINDOW_COVERING_TARGET_POSITION_CTYPE).
Does anybody have an example how to use this to control window blinds? I'd love to not only open & close the blinds but also set them to a specific level (e.g. 50%)
Many thanks in advance!

I'm also really interested in this, in fact the blind control is the reason I'm trying to get this whole thing working!

Just create a new characteristic with this type and in the future it should work with iOS 9 :)

So I tried, but get an object that doesn't appear to be controlled (as least from the insteon+ app I'm using for testing). Any ideas?
getServices: function() {
var that = this;
return [{
sType: types.ACCESSORY_INFORMATION_STYPE,
characteristics: [{
cType: types.NAME_CTYPE,
onUpdate: null,
perms: ["pr"],
format: "string",
initialValue: this.name,
supportEvents: false,
supportBonjour: false,
manfDescription: "Name of the accessory",
designedMaxLength: 255
},{
cType: types.MANUFACTURER_CTYPE,
onUpdate: null,
perms: ["pr"],
format: "string",
initialValue: "Http",
supportEvents: false,
supportBonjour: false,
manfDescription: "Manufacturer",
designedMaxLength: 255
},{
cType: types.MODEL_CTYPE,
onUpdate: null,
perms: ["pr"],
format: "string",
initialValue: "Rev-1",
supportEvents: false,
supportBonjour: false,
manfDescription: "Model",
designedMaxLength: 255
},{
cType: types.SERIAL_NUMBER_CTYPE,
onUpdate: null,
perms: ["pr"],
format: "string",
initialValue: "A1S2NASF88EW",
supportEvents: false,
supportBonjour: false,
manfDescription: "SN",
designedMaxLength: 255
},{
cType: types.IDENTIFY_CTYPE,
onUpdate: null,
perms: ["pw"],
format: "bool",
initialValue: false,
supportEvents: false,
supportBonjour: false,
manfDescription: "Identify Accessory",
designedMaxLength: 1
}]
},{
sType: types.WINDOW_COVERING_STYPE,
characteristics: [{
cType: types.NAME_CTYPE,
onUpdate: null,
perms: ["pr"],
format: "string",
initialValue: this.name,
supportEvents: true,
supportBonjour: false,
manfDescription: "Name of service",
designedMaxLength: 255
},{
cType: types.WINDOW_COVERING_TARGET_POSITION_CTYPE,
onUpdate: function(value) { console.log("value="+value); },
perms: ["pw","pr","ev"],
format: "int",
initialValue: 0,
supportEvents: false,
supportBonjour: false,
manfDescription: "Change the position",
designedMaxLength:1
}]
}];
}

I believe this will only work once we have ios9.

@hplato I have iOS 9 and tried this code. It doesn't work because it's incomplete. You have to put all the required characteristics for the Window Covering service. I don't know if it will work with iOS 8, but for iOS 9 this is my implementation and it works with the HMCatalog App provided by Apple:
// HomeKit types required
var types = require("./types.js")
var exports = module.exports = {};

var name = "Micro Blind"
var serviceName = "Blind"
var username = "1A:2B:3C:4D:5E:FP"
var manufacturer = "Insteon"
var model = "Micro Blind"
var serialNum = "A1S2NABB88EW"
var pincode = "031-45-154"

exports.accessory = {
  displayName: name,
  username: username,
  pincode: pincode,
  services: [{
	sType: types.ACCESSORY_INFORMATION_STYPE,
	characteristics: [{
		cType: types.NAME_CTYPE,
		onUpdate: null,
		perms: ["pr"],
		format: "string",
		initialValue: name,
		supportEvents: false,
		supportBonjour: false,
		manfDescription: "Name",
		designedMaxLength: 255
	},{
		cType: types.MANUFACTURER_CTYPE,
		onUpdate: null,
		perms: ["pr"],
		format: "string",
		initialValue: manufacturer,
		supportEvents: false,
		supportBonjour: false,
		manfDescription: "Manufacturer",
		designedMaxLength: 255
	},{
		cType: types.MODEL_CTYPE,
		onUpdate: null,
		perms: ["pr"],
		format: "string",
		initialValue: model,
		supportEvents: false,
		supportBonjour: false,
		manfDescription: "Model",
		designedMaxLength: 255
	},{
		cType: types.SERIAL_NUMBER_CTYPE,
		onUpdate: null,
		perms: ["pr"],
		format: "string",
		initialValue: serialNum,
		supportEvents: false,
		supportBonjour: false,
		manfDescription: "Serial Number",
		designedMaxLength: 255
	},{
		cType: types.IDENTIFY_CTYPE,
		onUpdate: null,
		perms: ["pw"],
		format: "bool",
		initialValue: false,
		supportEvents: false,
		supportBonjour: false,
		manfDescription: "Identify Accessory",
		designedMaxLength: 1
    }]
    },{
    sType: types.WINDOW_COVERING_STYPE,
    characteristics: [{
    	cType: types.NAME_CTYPE,
        onUpdate: null,
        perms: ["pr"],
        format: "string",
        initialValue: serviceName,
        supportEvents: false,
        supportBonjour: false,
        manfDescription: "Service Name",
        designedMaxLength: 255
    },{
    	cType: types.WINDOW_COVERING_CURRENT_POSITION_CTYPE,
    	onUpdate: null,
    	perms: ["pr"],
    	format: "int",
      	initialValue: false,
      	supportEvents: false,
      	supportBonjour: false,
      	manfDescription: "Window cover current position",
      	designedMinValue: 0,
      	designedMaxValue: 100,
      	unit: "%"
    },{
    	cType: types.WINDOW_COVERING_TARGET_POSITION_CTYPE,
    	onUpdate: function(value) { console.log(name + "- Change:", value); },
    	perms: ["pw","pr","ev"],
    	format: "int",
      	initialValue: false,
      	supportEvents: false,
      	supportBonjour: false,
      	manfDescription: "Window cover target position",
      	designedMinValue: 0,
      	designedMaxValue: 100,
      	designedMinStep: 1,
      	unit: "%"
    },{
    	cType: types.WINDOW_COVERING_OPERATION_STATE_CTYPE,
    	onUpdate: null,
    	perms: ["pr"],
    	format: "int",
      	initialValue: false,
      	supportEvents: false,
      	supportBonjour: false,
      	manfDescription: "Window cover operation state",
      	designedMinValue: 0,
      	designedMaxValue: 100,
      	unit: "%"
    }]
  }]
}

@bgottsch: are you able to use the control  [-|+] on your iOS 9 device?
I tried with the HM Simulator and IOS 8.4.1 and this works using EVE App.
But with homebridge the control is grayed out.
Here is the example: FhemWindowCovering  https://github.com/cflurin/homebridge-shims

@cflurin I did not test on a version lower than iOS 9 so I don't know if it's compatible. Try to create a new accessory from my code just to see if it works with a version lower than 9. If it doesn't work, than the problem might be with iOS 8.
And yes, I am able to control the targetPosition characteristic from my iOS device in the HMCatalog App

Okey thanks, I'll wait until next week (iOS 9).


fix: landscape qr

This is to fix the qr code not working horizontally, it isn't quite perfect I think but I'll let you take a look at the following pictures.
The old qr:
Portrait - I like how the text is above the bottom navigation bar here.

Landscape - It overflow and the qr code doesn't work because the profile picture is way to big.

The new qr:
Portrait - The text is now very low and behind the bottom navigation bar.

Landscape - The qr now works but I think the text is a little big.

I like how the old portrait text was and kind of how it looked in landscape but the qr code didn't work, this new way works but I don't quite like the text. Maybe we make the text smaller in the new landscape ui matching the old way without having to scroll and being over the navigation bar in portrait mode. I think I am missing something though, let me know the best way to do this.

@kevmo314 I think this is ready now here is how it looks:

Oh here it is in landscape

Oh here it is in landscape

Can you make the width fit the content for landscape? Otherwise this looks good.

Can you make the width fit the content for landscape? Otherwise this looks good.

So just remove all the excess white got it.

@kevmo314 Take a look


Images on Kiali page are not linked

On the Kiali page:
https://github.com/redhat-developer-demos/istio-tutorial/blob/master/documentation/modules/advanced/pages/kiali.adoc
All of the images links are broken -->

It is meant to be seen in a HTML page generated by Antora: https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.0.x/advanced/kiali.html#applications
We really expect that it won't be seen via Github:


How to use this plugin with java?

I try this with java, but I couldn't find avatarView .loadImage() function, any example codes for java?

Hi @yaniup, sorry for the late response. Unfortunately, this library doesn't support Java projects for now. Thanks!


A question about buying option

Hello, I hope you're doing so well, I have a question, If i put buyLimit at 1.00, It's going to market buy ? If it's not how to market buy with this lovely bot ? Thanks for further help.

It will still send a limit buy order to Binance, however it will be at the average market price of the coin rather than the current market price of it. This is done to avoid the bot buying pre-dumped coins and avoid you buying coins at a price that will not be profitable for you to sell at.
It is not possible to just send a market buy using the bot as is. You will have to change the source code of the bot to complete a market buy. You would change lines 173-176 to the following I belive:
order = client.order_market_buy(
        symbol=tradingPair,
        quantity=amountOfCoin)

Hope this answers your question :)

You did answer my question, Thank you so much, Just one more little question, if i do these change and i set profit at 10% for example, he will take the market buy price and add the 10% profit? or i need more changes to set this up ? thanks again

If you set a 10% profit margin (be aware to get 10% you would enter 110 in config.json) this will sell the coin at 10% MORE than the price you paid for the coins.
Eg if you bought some coins with 10 BC and set your profit margin to 110 in config.json, you would create a sell order that would produce 11 BTC if fulfilled.


Currency conversion does not appear to work on iPad

I've just installed the plugin on the iPad version and all currencies appear to throw a Undefined symbol error:

I have currency conversion turned on on the plugin settings. Am I missing something? Thank you very much in advance!

This plugin was built before ipad support for plugins, so it needs some updates to work at all. #26 might fix your situation.


Support for the  ctypes standard library

Typing the ctypes.c_ types is currently very tedious; only the conrete types of the ctypes type hierarchy (which kind-of exists, but in _ctypes).
Create a new optype.ctypes module, and add runtime-protocols that capture the ctypes.c_ "scalar" hierarchy (analogous to that of numpy scalar types).
It might be worth to provide interfaces for the other "types of ctypes types" (e.g. arrays, pointers, structs) too.

This is basically what the (currently undocumented) optype.numpy.ctypeslib now does.


Support: can't run in docker

Hi there. I want to run clj-holmes in CircleCI. To do this I need to generate a docker image containing clj-holmes:
ARG VERSION=v1.4.2

FROM cimg/base:stable
RUN sudo apt-get update -y && sudo apt-get full-upgrade -y
RUN curl https://github.com/clj-holmes/clj-holmes/releases/download/${VERSION}/clj-holmes-ubuntu-latest -o clj-holmes
RUN chmod +x clj-holmes
RUN ./clj-holmes fetch-rules

If I follow these steps outside of Docker, it works fine, but here's what I get:
$ docker build .
Sending build context to Docker daemon  3.072kB
Step 1/6 : ARG VERSION=v1.4.2
Step 2/6 : FROM cimg/base:stable
 ---> c349986a7037
Step 3/6 : RUN sudo apt-get update -y && sudo apt-get full-upgrade -y
 ---> Using cache
 ---> 860a626be7fb
Step 4/6 : RUN curl https://github.com/clj-holmes/clj-holmes/releases/download/${VERSION}/clj-holmes-ubuntu-latest -o clj-holmes
 ---> Using cache
 ---> 9ba767b013e8
Step 5/6 : RUN chmod +x clj-holmes
 ---> Using cache
  ---> 6a66237ef2b7
Step 6/6 : RUN ./clj-holmes fetch-rules
 ---> Running in d29567fa7464
+ ./clj-holmes fetch-rules
./clj-holmes: line 1: Not: command not found
The command '/bin/bash -exo pipefail -c ./clj-holmes fetch-rules' returned a non-zero code: 127

If I run a shell in the image, I get the same error regardless of CLI args. I wonder if this could be related to cli-matic as it barely seems to reach your code? However I wanted to check if you had any ideas please before going upstream.


How to support multi-threaded parallel data preprocessing?

I want to pretrain an LLM with 2T tokens using llm-foundry. But before training, the data processing time is too long. Is there any way to accelerate it?

Agree, this would be very useful.
Would it be possible to implement sharding for convert_dataset_json.py? Simply add extra parameters to specify # of shards  and index of shard. Script could then be run on multiple machines, targeting the same directory.

I think the example conversion script is perhaps not very good. One thing that helps a lot is to use the Datasets .map() to batch tokenize the dataset. I'm not sure how writing to the MDS file can be parallelized, but it probably can.
Also, there is a bug in tokenizers that might make it way slower than you would like - see https://github.com/huggingface/tokenizers/pull/1413.

The text to MDS conversion script (https://github.com/mosaicml/llm-foundry/blob/main/scripts/data_prep/convert_text_to_mds.py) is parallelized, is that what you are looking for (or at least a good starting point)?

The text to MDS conversion script (https://github.com/mosaicml/llm-foundry/blob/main/scripts/data_prep/convert_text_to_mds.py) is parallelized, is that what you are looking for (or at least a good starting point)?

Thanks, I will look into it.

Isn't enough to just run the script in parallel?
https://github.com/mosaicml/llm-foundry/blob/f43d1cfb1ef8f38ca90fee68b0643f45d6d5b2da/llmfoundry/utils/data_prep_utils.py#L29
Currently, I am trying it like this.
For instance, I have large jsonl file. I used split -l to split it into number of processor files. Then I call convert_dataset_json.py independently on each of these, obtaining 1 output folder for each process, the output folder is in some output_root_folder.
Lastly, I hope it will be enough to just call the mentioned merge method on this (Will update once the progress is finished.).

Yes @MFajcik , that should work!

Isn't enough to just run the script in parallel, and merge the mds shards with this method?
https://github.com/mosaicml/llm-foundry/blob/f43d1cfb1ef8f38ca90fee68b0643f45d6d5b2da/llmfoundry/utils/data_prep_utils.py#L29
Currently, I am trying it like this.
I have large jsonl file. I used split -l to split it into number of procs files. Then I call convert_dataset_json.py independently on each of these, obtaining 1 output folder for each process, the output folder is in some output_root_folder.
Lastly, I hope it will be enough to just call the mentioned merge method on output_root_folder
(Will update once the progress is finished.).

Yes @MFajcik , that should work!

It does work! Preprocessing was done in notime. Thanks for the hint!

I changed ConcatTokensDataset.__iter__ to this:
def __iter__(self) -> Iterable[Dict[str, bytes]]:

        buffer = []
        # self.write_batch_size = 10_000
        shards = self.hf_dataset.num_rows // self.write_batch_size + 1
        for i in range(shards):
            shard = self.hf_dataset[
                i * self.write_batch_size : (i + 1) * self.write_batch_size
            ]
            encoded_shard = self.tokenizer(
                shard["text"], truncation=False, padding=False
            )
            for encoded in encoded_shard["input_ids"]:
                iids = encoded  # ['input_ids']
                buffer = buffer + self.bos_tokens + iids + self.eos_tokens
                while len(buffer) >= self.max_length:
                    concat_sample = buffer[: self.max_length]
                    buffer = buffer[self.max_length :] if self.should_wrap else []
                    yield {
                        # convert to bytes to store in MDS binary format
                        "tokens": np.asarray(concat_sample).tobytes(),
                        "num_tokens": len(concat_sample),
                    }

Processing 7B tokens takes around 20 hours with the original code and 30 min with this change. It's not very robust though and doesn't scale very well: a fast tokenizer hangs after a while with very long text and more than 16 threads seem not to give you any speedup.

I changed ConcatTokensDataset.__iter__ to this:
def __iter__(self) -> Iterable[Dict[str, bytes]]:

        buffer = []
        # self.write_batch_size = 10_000
        shards = self.hf_dataset.num_rows // self.write_batch_size + 1
        for i in range(shards):
            shard = self.hf_dataset[
                i * self.write_batch_size : (i + 1) * self.write_batch_size
            ]
            encoded_shard = self.tokenizer(
                shard["text"], truncation=False, padding=False
            )
            for encoded in encoded_shard["input_ids"]:
                iids = encoded  # ['input_ids']
                buffer = buffer + self.bos_tokens + iids + self.eos_tokens
                while len(buffer) >= self.max_length:
                    concat_sample = buffer[: self.max_length]
                    buffer = buffer[self.max_length :] if self.should_wrap else []
                    yield {
                        # convert to bytes to store in MDS binary format
                        "tokens": np.asarray(concat_sample).tobytes(),
                        "num_tokens": len(concat_sample),
                    }

Processing 7B tokens takes around 20 hours with the original code and 30 min with this change. It's not very robust though and doesn't scale very well: a fast tokenizer hangs after a while with very long text and more than 16 threads seem not to give you any speedup.

Thanks for your update! Do you modify other files to enable multithread?

Thanks for your update! Do you modify other files to enable multithreaded?

Yes sorry, I also removed os.environ["TOKENIZERS_PARALLELISM"] = "false" from ConcatTokensDataset.__init__.

Thanks for your update! Do you modify other files to enable multithreaded?

Yes sorry, I also removed os.environ["TOKENIZERS_PARALLELISM"] = "false" from ConcatTokensDataset.__init__.

It helps a lot. I can process 100B tokens within in 7 hours with your code! :)


Can't find Websocket client

Hello guys,
I've been using the hprose WebSocketService() for Go for some time but I couldn't find a way to use it with the dotnet client. Is there any way to do this?

There is no websocket client in hprose,  but you can use http client instead.

Too bad, I was looking for an easy way to get notifactions/events  using the socket chan. Correct me if I'm wrong but Http Client won't do it since I would need it to be Async.

The hprose for .net has not been update to 2.0 version, so pub/sub has not been implemented yet. We will add this feature in hprose 2.0 for .net.

Can't wait for it :)
Thanks for the reply though

@andot - Any timeline for the 2.0 version?  I may be able to help and in Hong Kong at the moment.

There is no timeline for the 2.0 version of hprose for .NET.

Hprose 3.0 for .NET is out now.


test creating a resource with nested attributes

This is an example of using Rails approved nested_attributes to create multiple resources at once. I want this for my application and I know others have asked about it as well (#424 and others).
I realize that this form doesn't necessarily conform to the JSON API spec, so I doubt you'll want to merge it. But I put the test together for my own sake and wanted to make the code available for others.

Thanks for posting this. As you say it's nonconforming so we won't merge it, but it still may help others. I'll leave it open for a bit until we get a better way of sharing code and tips setup.


PC-912 Remove admin URL to extract all referrals

pre-empting its removal from the project

@samyou-softwire I have a memory that we agreed to keep the endpoint, and I documented that somewhere. Do you remember where? Would like to close this if I've remembered it right.

it's in the comments of PC-1171


Initial work to support OptiX output for ray tracing shaders

This change represents in-progress work toward allowing Slang/HLSL ray-tracing shaders to be cross-compiled for execution on top of OptiX. The work as it exists here is incomplete, but the changes are incremental and should not disturb existing supported use cases.
One major unresolved issue in this work is that the OptiX SDK does not appear to set an environment variable
Changes include:

Modified the premake script to support new options for adding OptiX to the build. Right now the default path to the OptiX SDK is hard-coded because the installer doesn't seem to set an environment variable. We will want to update that to have a reasonable default path for both Windows and Unix-y platforms in a later chance.

I ran the premake generator on the project since I added new options, which resulted in a bunch of diffs to the Visual Studio project files that are unrelated to this change. Many of the diffs come from previous edits that added files using only the Visual Studio IDE rather than by re-running premake, so it is arguably better to have the checked-in project files more accurately reflect the generated files used for CI builds.

The "downstream compiler" abstraction was extended to have an explicit notion of the kind of pipeline that shaders are being compiled for (e.g., compute vs. rasterization vs. ray tracing). This option is used to tell the NVRTC case when it needs to include the OptiX SDK headers in the search path for shader compilation (and also when it should add a #define to make the prelude pull in OptiX). This code again uses a hard-coded default path for the OptiX SDK; we will need to modify that to have a better discovery approach and also to support an API or command-line override.

One note for the future is that instead of passing down a "pipeline type" we could instead pass down the list/set of stages for the kernels being compiled, and the OptiX support could be enabled whenever there is any ray tracing entry point present in a module. That approach would allow mixing RT and compute kernels during downstream compilation. We will need to revisit these choices when we start supporting code generation for multiple entry points at a time.

The CUDA emit logic is currently mostly unchanged. The biggest difference is that when emitting a ray-tracing entry point we prefix the name of the generated __global__ function with a marker for its stage type, as required by the OptiX runtime (e.g., a __raygen__ prefix is required on all ray-generation entry points).

The Renderer abstraction had a bare minimum of changes made to be able to understand that ray-tracing pipelines exist, and also that some APIs will require the name of each entry point along with its binary data in order to create a program.

The ShaderCompileRequest type was updated so that only a single "source" is supported (rather than distinct source for each entry point), and also the entry points have been turned into a single list where each entry identifies its stage instead of a fixed list of fields for the supported entry-point types.

The CUDA compute path had a lot of code added to support execution for the new ray-tracing pipeline type. The logic is mostly derived from the optixHello example in the OptiX SDK, and at present only supports running a single ray-generation shader with no parameters. The code here is not intended to be ready for use, but represents a signficiant amount of learning-by-doing.

The slang-support.cpp file in render-test was updated so that instead of having separate compilation logic for compute vs. rasterization shaders (which would mean adding a third path for ray tracing), there is now a single flow to the code that works for all pipeline types and any kind of entry points.

Implicit in the new code is dropping support for the way GLSL was being compiled for pass-through render tests, which means pass-through GLSL render tests will no longer work. It seems like we didn't have any of those to begin with, though, so it is no great loss.

Also implicit are some new invariants about how shaders without known/default entry points need to be handled. For example, the ray tracing case intentionally does not fill in entry points on the ShaderCompileRequest and instead fully relies on the Slang compiler's support for discovering and enumerating entry points via reflection. As a consequence of those edits the -no-default-entry-point flag on render-test is probably not working, but it seems like we don't have any test cases that use that flag anyway.

Given the seemingly breaking changes in those last two bullets, I was surprised to find that all our current tests seem to pass with this change. If there are things that I'm missing, I hope they will come up in review.

It appears that
serialized-module-entry-point-test
library-entry-point-test.slang
uses -no-default-entry-point.

On the point about GLSL and pass through, it could be argued that it is an issue that we don't have a GLSL passthrough test, to make sure that works, even though there doesn't appear to be one now.
Well it looks like we have one... glslang-error.slang

It appears that
serialized-module-entry-point-test
library-entry-point-test.slang
uses -no-default-entry-point.

I wonder how I missed that when I searched for that text, and also how the tests appeared to work on my machine...

On the point about GLSL and pass through, it could be argued that it is an issue that we don't have a GLSL passthrough test, to make sure that works, even though there doesn't appear to be one now.
Well it looks like we have one... glslang-error.slang

To be clear, this change does not break our ability to test GLSL pass-through. It just breaks our ability to use pass-through GLSL as part of a render-test. Pass-through GLSL is used for many of our cross-compilation tests already.


Permission to remove an issue

Is it possible to give one of the project group the right to delete issues completely?
It would make sense to give this to @jarkenau as the project leader.
If this is not possible or wanted, should we then write another issue to remove the issues?

You cannot remove issues. You can only close issues. I have seen that you have already closed some issues. Please think before you create a new issue. Also, use decent descriptions in the issues. Thank you.

And yes, please write down any issues that should be removed if it is really necessary.

The issues that are to be removed are only issues that arose in the planning phase. There we tried out how we could best organise the requirements. Perhaps I should have mentioned that. We don't want to remove issues that show the progress of the project. In the future, it should no longer happen that unnecessary issues have to be created and removed.

@spuetz Thank you very much!
Since all issues have been removed and the permission to remove them is not up for discussion, I am closing the issue.


fix(dojo-lang): ensure a model has at least one attribute that is not a key

Currently, a model that has only keys produces the following error:
error: Unexpected return type. Expected: "core::integer::u32", found: "()".
 --> /mnt/data/dojo-starter/src/models.cairo[Multi]:39:24
    fn size() -> usize {
                       ^

error: Compilation failed.

This PR aims at panicking explaining to the user what's happening.
From my understanding, it is not useful to have a model without any field in the database.

Codecov Report
Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (792194c) 60.43% compared to head (158931c) 60.42%.
Report is 1 commits behind head on main.

Files
Patch %
Lines

crates/dojo-lang/src/introspect.rs
37.50%
5 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1323      +/-   ##
==========================================
- Coverage   60.43%   60.42%   -0.01%
==========================================
  Files         226      226
  Lines       18777    18785       +8
==========================================
+ Hits        11347    11350       +3
- Misses       7430     7435       +5

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

Wouldnt this just panic the compilation process entirely? I'm not very familiar on this but wouldnt it better to have it as compiler diagnostics?

Ah yeah you're right. This should be a compiler diagnostic. My bad


[question] Bundle as a dependency

How is one supposed to get the dist/the-graph.js bundle if the-graph library is an NPM dependency (specified in package.json)? After npm install I have all the sources in node_modules/the-graph, but no dist directory. Thanks.

In noflo-ui we're building the-graph in the same WebPack bundle as our other modules. But indeed, maybe it would make sense to include a pre-built version in the NPM module for those that don't want to build

I don't use WebPack in my project so that's pretty much not an option for me. Please comment here after you've decided whether to include a pre-built library in the NPM module or not so that I can close the issue. Thanks.

Just-released 0.10.3 contains the dist/ directory, as will future releases. Thanks for reporting


Thinning Tutorial

I just want to make my custom model and remove some of its filters. based on my criteria or maybe i will just give the layer index and filter index and it gets removed and I get a smaller model. I am not able to figure it out from the documentation. Can anyone please help me out.

I want to do it for image classification model

can anyone help me just with thinning?


Dropdown Filter inconsistence

Version: 2.1.1
Expected: Dropdown to filter using "Starts with"
Actual: Dropdown filters using "wild card"
Expected

Actual

Compared to Semantic UI the search behavior is indeed different. However, changing/aligning it now means huge breaking changes. To customize search behavior you can use custom search function: https://react.semantic-ui.com/modules/dropdown/#usage-custom-search-function
Here is the snippet that implements "starts with" option:
function customSearch(options, searchQuery) {
  return options.filter((option) =>
    option.text.toLowerCase().startsWith(searchQuery.toLowerCase())
  );
}

const DropdownExampleSearchSelection = () => (
  <Dropdown
    placeholder="Select Country"
    search={customSearch}
    fluid
    selection
    options={countryOptions}
  />
);

https://codesandbox.io/s/semantic-ui-example-forked-6868h?file=/example.js:1482-1818


use mvdream and zero123 at the same time

it would be nice to allow using mvdream and zero123 at the same time.
however, mvdream requires batch size = 4 but zero123 only support setting the entire batch as the same camera pose

same question.How did you solve it?


Update SXG info

This PR makes the following changes for Origin Signed HTTP Exchanges (committed in https://github.com/Fyrd/caniuse/pull/5206 - note this is currently not live yet):

I've confirmed Opera support - couldn't get this working when I originally submitted this but confirmed it works now even back to same version (64). Not sure if it was off by a flag but definitely works now.
Edge have changed one of their URLs so fixed that.
Set 'Unknown' rather than 'No support' for some of the mobile browsers where they are based on a version of Chromium which may support this.

FYI, support can be confirmed by:

Launching in mobile emulator mode if on desktop
Visiting https://www.google.com/?esrch=WebPackage::Demo
Searching for "amp dev"
Launching an "amp.dev" URL with lightning bolt and confirming if "amp.dev" shows in URL (it's supported) or "google.com" (it's not supported).

Thanks!


I was using watchEffect to pass a value inside focusRef.value and passing the return value of the funciton locationToAngles causing a loop.
To fix it, just got rid of the watchEffect and used watch instead.
watch(
() => props.marker,
(marker) => {
focusRef.value = locationToAngles(marker.location[0], marker.location[1]);
}
);
watchEffect would work as well, but I thought that watch was simple enough to solve it.


How to simply extract modelled optical depth?

Hello,
I have run amoeba2 with some of my own OH data and it gave me traces of column density, velocity, excitation temperature etc. for each cloud.
I saw that within the source code that TauModel() has the function predict_tau() which looks like it calculates optical depth based on the fitting column density, FWHM, velocity and inverse excitation temperature.
I cannot easily figure out how to actually extract out the modelled optical depth spectra or modelled optical depth amplitude from the output of predict_tau().
Essentially I want to pull out the best optical depth amplitude for each cloud and each OH transition so I can make my own 'best fit' optical depth model (together with the fitted FWHM and velocity) that I can compare that with my data and see what each model velocity component looks like.
I could estimate optical depth myself using the fitted column density, inverse excitation temperature, FWHM, velocity from the model, but since I see those equations already in the amobea2 code, it would be nice if I could just call a function and it tell me an optical depth value. Or maybe the code already does that and I'm just not understanding how to pull out those numbers?

Thanks for the suggestion @bcappa!
Unfortunately, I didn't write this model in such a way to make this visualization "easy". I've updated the tau_model tutorial with a demonstration of how one could use the mean posterior point estimate to visualize the contribution of individual clouds. This essentially breaks down what happens in predict_tau.
https://amoeba2.readthedocs.io/en/latest/notebooks/tau_model.html#Visualization-using-Mean-Point-Estimate
The reason predict_tau()["1612"].eval() doesn't work is because, without any arguments to eval, it simply evaluates the model with a random draw for the model parameters. You can pass parameters to eval, like predict_tau()["1612"].eval({"velocity": [0.0], etc.}), but because the model is specified to have n_clouds, you'd have to hack this pretty heavily to get it to work I think.
I'll think about easier ways to perform this visualization! A simple solution might be to move predict_tau to physics.py and pass the model parameters as arguments. That way one could independently call predict_tau with whatever parameters they want just to get the visualization. I would also need to implement a way to get the baseline model from bayes_spec. If you feel so-inclined, please consider submitting a pull request to refactor predict_tau into physics.py!


do a more consistent cluster type check for openshift

fixes: https://github.com/kiali/kiali/issues/7841

I will be testing this (haven't done it yet). It should be simple to test. Deploy the operator on minikube and on OpenShift and see that it behaves correctly on both.

OpenShift Test

Start an OpenShift cluster and install Istio on it
Log into the OpenShift cluster
Log into the OpenShift image registry (something like podman login --tls-verify=false -u kubeadmin -p $(oc whoami -t) default-route-openshift-image-registry.apps-crc.testing)
With this PR checked out, build/push/deploy the operator and kiali leaving the auth strategy undefined: make -e AUTH_STRATEGY="" build build-ui test cluster-push operator-create kiali-create
Check that the Kiali Server deployed correctly (oc get pods -n istio-system -l app.kubernetes.io/name=kiali)
Check that the operator detected the cluster type correctly by looking at the logs:

$ oc logs -n kiali-operator -l app.kubernetes.io/name=kiali-operator --tail=-1 | grep "CLUSTER TYPE:"
    "msg": "CLUSTER TYPE: is_openshift=True; is_k8s=False"

(notice it says is_openshift=True as well as is_k8s=False).
7. Check that the Kiali Server's auth.strategy is set to openshift (this confirms the cluster type check succeeded). You can do this check by looking at the Kiali ConfigMap:
$ kubectl get cm kiali -n istio-system -oyaml | grep strategy
      strategy: openshift

or just go to the Kiali UI and see that it asks for your OpenShift credentials when logging in.
8. Check that a Route is created in istio-system - this also means the operator knows it is on OpenShift: oc get routes -n istio-system -l app.kubernetes.io/name=kiali
Vanilla Kubernetes Test

Start a minikube cluster and install Istio on it
With this PR checked out, build/push/deploy the operator and kiali leaving the auth strategy undefined: make -e CLUSTER_TYPE=minikube AUTH_STRATEGY="" build build-ui test cluster-push operator-create kiali-create
Check that the Kiali Server deployed correctly (kubectl get pods -n istio-system -l app.kubernetes.io/name=kiali)
Check that the operator detected the cluster type correctly by looking at the logs:

$ kubectl logs -n kiali-operator -l app.kubernetes.io/name=kiali-operator --tail=-1 | grep "CLUSTER TYPE:"
    "msg": "CLUSTER TYPE: is_openshift=False; is_k8s=True"

(notice it says is_openshift=False as well as is_k8s=True).
5. Check that the Kiali Server's auth.strategy is set to token (this confirms the cluster type check succeeded). You can do this check by looking at the Kiali ConfigMap or just go to the Kiali UI and see that it asks for a k8s token when logging in.


remove minHeight restriction

Issue #314 related

Why is this not merged? This is helpful

What happened to the PR?


Last version to support cordova-android < 4.0?

I would like to use this plugin in combination with Meteor 1.1, which has an embedded cordova that is still on cordova-android 3.6.4. So I get an installation error with the latest 1.4.5 release of this plugin, as it introduced an additional restriction to cordova-android > 4.0.0 in the plugin.xml file.
As I can see, version 1.4.4 did not contain this restriction. Is it safe to use this version instead, or was the restriction added due to problems with cordova-android < 4.0.0? If so, which version would you recommend for this older cordova-android?
Thanks in advance for your reply. Tom

@derwaldgeist technically, 1.4.5 should still work with cordova-android < 4 but I don't have the time to test that far back. You may want to check if a later version of meteor uses a version of cordova-android >=4.


automate releases

Description
See https://partner.github.com/integration-resources/2021/03/19/pattern-releasing-and-maintaining-actions.html
What type of issue is this? (place an x in one of the [ ])

[x] enhancement (feature request)

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

Submitted https://github.com/slackapi/slack-github-action/pull/23 to implement Steven's suggestion.

Merged! Thanks @robzr!  let me know if v1.16.0 looks good

Hey @stevengill this is fantastic; works like a charm.  Thanks for the quick merge!  I like that it adds the v1 and v1.16 major / major.minor tracking tags too, so we don't have to pin to a patch.  👍 Gonna re-use this action for other stuff...


fix: Add template with function

This adds a function that can be used to template strings given a function. The function is called once for every instance of <<>> template strings found in the string.

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


FileNotFoundError: [Errno 2] No such file or directory: 'configs/tasks/pointnav.yaml'

❓ Questions and Help
Sorry for being a pain but I am keeping getting errors while trying to use habitat-api..
I am trying to run python examples/example.py (from installation: https://github.com/facebookresearch/habitat-api#installation) and  I am getting this error:
Traceback (most recent call last):
File "habitat-api/examples/example.py", line 25, in
example()
File "habitat-api/examples/example.py", line 11, in example
env = habitat.Env(config=habitat.get_config("configs/tasks/pointnav.yaml"))
File "/Users/alessandrocandeloro/Documents/University/in3007_ind_proj/implementation/habitat-api/habitat/config/default.py", line 350, in get_config
config.merge_from_file(config_path)
File "/Users/alessandrocandeloro/anaconda3/envs/habitat/lib/python3.6/site-packages/yacs/config.py", line 211, in merge_from_file
with open(cfg_filename, "r") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'configs/tasks/pointnav.yaml'

Double check that your current directory is ‘habitat-api’. All runnables
should be run from ‘habitat-Apis’ directory.
On Tue, Mar 3, 2020 at 1:45 AM Alessandro Candeloro <
<EMAIL_ADDRESS>wrote:

❓ Questions and Help
Sorry for being a pain but I am keeping getting errors while trying to use
habitat-api..
I am trying to run python examples/example.py (from installation:
https://github.com/facebookresearch/habitat-api#installation) and I am
getting this error:
Traceback (most recent call last):
File "habitat-api/examples/example.py", line 25, in
example()
File "habitat-api/examples/example.py", line 11, in example
env = habitat.Env(config=habitat.get_config("configs/tasks/pointnav.yaml"))
File
"/Users/alessandrocandeloro/Documents/University/in3007_ind_proj/implementation/habitat-api/habitat/config/default.py",
line 350, in get_config
config.merge_from_file(config_path)
File
"/Users/alessandrocandeloro/anaconda3/envs/habitat/lib/python3.6/site-packages/yacs/config.py",
line 211, in merge_from_file
with open(cfg_filename, "r") as f:
FileNotFoundError: [Errno 2] No such file or directory:
'configs/tasks/pointnav.yaml'
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/facebookresearch/habitat-api/issues/317?email_source=notifications&email_token=AAGWHAC3ZRCIR3K7ZMDDKF3RFTGT3A5CNFSM4LAGQIB2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IR6Y6UQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGWHAAGUOBE2N3PSVQFVCDRFTGT3ANCNFSM4LAGQIBQ
.

Thank you


Question

Can u please give an example for sending different items with one command with AppID::ContextID::ClassID?

How it was?


Fixes Toolbar flicker and other toolbar issues

Leads on from @ansman work.
Closes #386
Fixes #368 #327 #280
Probably Fixes #304 and #363

Snapshot available: https://oss.sonatype.org/content/repositories/snapshots/uk/co/chrisjenx/calligraphy/2.3.0-SNAPSHOT/

Snapshot updated.

👍

I was wondering if we should perhaps have the code do this instead:
CharSequence previousTitle = toolbar.getTitle();
CharSequence previousSubtitle = toolbar.getSubtitle();
toolbar.setTitle(" ");
toolbar.setSubtitle(" ");
// Iterate through the children
toolbar.setTitle(previousTitle);
toolbar.setSubtitle(previousSubtitle);

That way we can be sure it will set the title.

@ansman yeah thats why I want some regression testing, I think as this is now done inline, we will avoid any race conditions compared to updating text between the layout listener like before. So I think it should be fine now.

Yeah, absolutely but say you set your title to an empty string to avoid getting NPEs, then calligraphy sets it back to null.

Ahh good point. I'll update.
On Tue, 9 May 2017 at 11:05 Nicklas Ansman Giertz<EMAIL_ADDRESS>wrote:

Yeah, absolutely but say you set your title to an empty string to avoid
getting NPEs, then calligraphy sets it back to null.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chrisjenx/Calligraphy/pull/387#issuecomment-300119884,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABHRseZjF9J67WVM6fk2JQJJHk_EQ4yzks5r4DpagaJpZM4NUjNk
.

Done, new snapshot.

I tried it, works beautifully. Both with titles/subtitles set in XML and in code.

Had no know regressions, merging and releasing.


Cache the installation to avoid redownloading & switch to Node.js

👋 Hello @yusancky!
I'm opening this PR because this seems to be the premiere Typst-installer GitHub Action. However, it doesn't cache the installation which is a big downside. Then after adding caching support I got carried away and did a bunch more stuff lol. 😅
This PR would:

Add caching support. If the typst cache dir exists, don't download and extract it again; just use the cached dir.
Add support for ARM64 runners. This is important with self-hosted GitHub Actions runners that run on ARM64 images like those from https://buildjet.com/for-github-actions or others.
Add a GitHub Action to test and make sure that PRs and main commits actually work. Basically it just runs the action and then typst --version and typst compile test.typ to make sure it works. https://github.com/jcbhmr/setup-typst/actions
Use the Node.js runtime instead of a composite action. This was needed to get tight integration with the existing GitHub Actions SDK provided for Node.js-based Actions.
Use Vite to bundle the Node.js code on release into a self-contained JS file. GitHub Actions Node.js runtime doesn't do npm install && node main.js, it just does node main.js. Therefore, you need to bundle all your dependencies.
Use post-release tag mutation to build & commit the dist/main.js bundled Vite artifact on each new release.
Improve readme to describe inputs and outputs a bit more thoroughly.
Bump the version used in the readme from v2 (current version) to v3
Add a GitHub Action to automagically tag new releases with a major tag (vN) in addition to the specific tag (vN.N.N).

Thank you very much for contributing. I checked out the discussion you posted too, and I'll give 'em both a good look-see over the weekend.
To tell you the truth, I originally wrote this action just for my own use. I was thinking about making this project in Node.js before, but I had trouble with downloading releases back then.

Additionally, I am considering adding you as a collaborator (and even including you in the license if you wish), what do you think?

Sounds great! 👍
I also want to bring up: I think that this setup-typst GitHub Action would be a great project to put under the @typst-community organization. IMO it would be best to coincide that with the release of v3 of this action. Do you think that this would be a good move?
Sidenote: GitHub will redirect Actions to their new name no problem

So I just need to do this to transfer to @typst-community then?

Pretty much!

In order to transfer a repo to an org you do need to be an org member. @huwaireb is currently the person with the power to add members. 👋 Hey @huwaireb, I think you should add @yusancky as a member to @typst-community 👍
Anyone browsing to https://github.com/yusancky/setup-typst will be redirected to ${new_url}
Anyone with - uses: yusancky/setup-typst@vN will redirect to - uses: ${new_repo}@vN
You should still have full "Owner" role of the transferred repository's ${new_url}; contact @huwaireb if you don't

That's the gist of it. I did ☝ with https://github.com/jcbhmr/typst.js and it worked out pretty well so far. 🤷♂
Then once you're ready (after transferring or not transferring if you decide that) create a new GitHub release via the GitHub UI with a tag of v3.0.0 and watch the magic happen 🎉

Hey 👋,
Just wanted to confirm, @yusancky, do you want to drop setup-typst in the typst-community org? I'm questioning if you, personally feel like you'll benefit in any way in doing so if the organization itself cannot offer anything right now, as it is just an aggregrate of community projects. However, it does have goals, close to that of other *-community organizations.
Take @coq-community for one, for reasons why you could want to have a repository on *-community organization (from github:coq-community/manifesto):

the initial author has stopped maintaining the project and someone else is volunteering to do so;
the project has become a collective work (several community members are actively working on it);
the initial author is still maintaining the project but they want to encourage other community members to participate in the maintenance and possibly take over (and the project is indeed raising interest from the community);
the project is a tool of general interest and it makes sense to develop it collaboratively.

If you have no interest in doing so, it's completely fine. If you do, then I'll proceed by extending an invite.
context
@jcbhmr's reach out, was if my understanding is correct, purely with the thought that such project, a setup-typst action, would be ideal for a place like @typst-community, and did not want to cause fragmentation in the community by creating a new one so he opt'd for a PR instead, in place extending an invite to participate in an arguably environment that gains from centralization in many things, one being collaborative-ness.

Do you want to drop setup-typst in the typst-community org?

Sure, I'd be happy with that!


Method havingCount results in error

Error:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'COUNT( * )' in 'having clause'

The same is true of having('COUNT(*)', ...
The workaround is to assign COUNT(*) AS count, and then reference the count variable in the SQL.
I know we discussed this previously, but this month has been unexpectedly busy. I will see if I can figure out where this problem occurs and a good method to resolve it if I have time.

Could this be related to the backticks?
$this->container[] = " $chainType `$column` $operator ?";

@mookman288 It's definitely related to the backticks. I went through and I think this could be addressed by using havingCount()? That function also takes a column name but adds in the COUNT for you.

I was using havingCount, the method, originally. It still uses the backticks. Are they necessary (they aren't in the original library) or were they a design feature?

Oh I understand now. I'll send a PR up in a few minutes with my proposed changes.

I just tested this (manually, I didn't pull anything down) and it works.

Ok this should be resolved now in master at version 2.0.3!


Always assign stacktrace location to problem reports

Fixes https://github.com/gradle/gradle/issues/30561

@bot-gradle test this

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

Pull Request Feedback (Trigger) (Check)

@bot-gradle test APTR

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

All Performance Tests (Trigger)


Smooth scrolling to top after search click

P.S A little freezes when scrolling - it's my overloaded laptop(


Vite production build > Mappersmith is not a function

Hi everybody!
Thanks for the great project. I really love it, it solves a huge problem and works beautifully with Vue3 + Pinia.
While building for production, I run into a strange error. I don't understand what's wrong here, maybe somebody has seen this? When building in dev mode, all is fine. When building for production, I get TypeError: mappersmith is not a function. This is really fun, I already lost a lot of time on this.
Im am building with Vite (2.9)  + VueJS (v3), for the build setup I started with a starter provided by the Vue CLI. So basic setup with typescript and all the default stuff, nothing fancy. Mappersmith is imported using
import forge, { configs } from 'mappersmith'

I need the configs to later set Fetch as the default gateway and configure it to use credentials on cross site requests. But actually not changing the default gateway doesn't change anything.
Also I already tried to build with a manual chunk for mappersmith, that also doesn't change anything.
Any ideas? I cant figure out what I'm missing here.
EDIT: Some more details. I'm really insecure who is to blame here, I'd suspect it's either the Vite configuration or the Typescript configuration. So for reference:
My tsconfig.json
{
  "extends"<EMAIL_ADDRESS>  "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    },
    "skipLibCheck": true
  },
  "references": [
    {
      "path": "./tsconfig.vite-config.json"
    }
  ]
}

And the tsconfig.vite-config.json
{
  "extends"<EMAIL_ADDRESS>  "include": ["vite.config.*"],
  "compilerOptions": {
    "composite": true,
    "target": "ES2016",
    "module": "ES6",
    "moduleResolution": "Node",
    "importHelpers": true,
    "isolatedModules": true
  }
}

and finally the vite.config.ts
import { fileURLToPath, URL } from 'url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
  build: {
    target: 'es2016',
  },
})

Thanks for your help!

Maybe another thing: During the build mappersmith pops up, also in the final build there is a var mappersmith=, so I'd assume it probably is some issue with vite rather than the compiling itself.

Ok, after fiddling around some more, it looks like it's the default import that somehow breaks.
I switched to:
import { configs } from 'mappersmith'
import forge from 'mappersmith/mappersmith'

This works for me as I change the defaultGateway to Fetch anyway. As the default import wrapper is quite small, I don't see any reason why it should break. But anyway, here is a fix in case somebody else runs into this. Leaving this open in case somebody wants to investigate further, feel free to close. :-)

Hello! We really appreciate the kind words ❤
I am sorry but we do not have any expertise in either Vite or Vue but we have changed stuff recently while moving to TS and how types are exported. In which version of mappersmith did you start seeing this issue?

Yes, this problem still occurres.

import { configs } from 'mappersmith'
import forge from 'mappersmith/mappersmith'

this code solves it.


Feature: Add method to plugin object to expose day plan

I have been wanting to work with my day plan outside obsidian so I forked the project to expose this data on the plugin instance. This involved the following,

Adding a getTasks(visibleDays: Moment[]): Record<string, TasksForDay>  to the plugin object
Refactoring out the behaviour of the Svelte store hooks used to compute the data into standalone functions that can called from a non-svelte context.

Is there something that would be appreciated upstream and if so is there anything I should change before  opening a PR? I do not have much experience with Svelte, so the changes around the hooks may not be needed for this use case.
My fork can be found here and I am happy to answer any questions!

Hey, @joshuacoles, that's an interesting idea 🤔
For starters, can you describe what kind of scripting you do?
The biggest hurdle right now is that I'll need to clean up the Task interface, because it's a bit messy.

Hey @ivan-lednev, I am using the method to expose the data to external applications from. This allows me to avoid reimplementing the parsing behaviour and keep a consistent view of the data between obsidian and anything external.
Currently my workflow is day planning in obsidian and then using an iOS app I have created to view my plan and start Toggl timers associated with each task, as well as soon show a live activity to keep me on track.
If you don't want to expose the full Task interface, a simple selection of the properties representing things that are less likely to change could be an option, or simply documenting that the return structure is internal and will change as the plugin evolves. For reference I am currently using the startTime, durationMinutes, and firstLineText in my app.


ArrayInterface broken with Vitis 2020.1

After "upgrading" to Vitis 2020.1/2020.2, we get this error when writing to an output pointer extracted from an ArrayInterface object:
ERROR: [HLS 214-134] in function 'module_write_C_0(float const*, float*, dace::FIFO<float, 1u, 1u>*)': Pointer to pointer is not supported (/home/definelj/dev/dace/dace/codegen/../runtime/include/dace/xilinx/array_interface.h:15:9)
ERROR: [HLS 214-134] in function 'module_write_C_0(float const*, float*, dace::FIFO<float, 1u, 1u>*)': Pointer to pointer is not supported (/home/definelj/dev/dace/dace/codegen/../runtime/include/dace/xilinx/array_interface.h:15:26)
ERROR: [HLS 214-134] in function 'module_write_C_0(float const*, float*, dace::FIFO<float, 1u, 1u>*)': Pointer to pointer is not supported (/home/definelj/dev/dace/dace/codegen/../runtime/include/dace/xilinx/array_interface.h:41:9)
ERROR: [HLS 214-134] in function 'module_write_C_0(float const*, float*, dace::FIFO<float, 1u, 1u>*)': Pointer to pointer is not supported (/home/definelj/dev/dace/dace/codegen/../runtime/include/dace/xilinx/array_interface.h:47:53)
ERROR: [HLS 214-135] Syn check fail!

It seems it might be time to get rid of ArrayInterface once and for all.

Reproduced and agreed.

Fixed with #657 and #660.


Error with Storybook making a request to Drupal

I'm following the walkthrough at https://git.drupalcode.org/project/cl_server/-/blob/2.x/docs/storybook.md, but am running into an error with Storybook connecting with Drupal using this addon.  I'm not sure if I'm missing some setting in the walthrough, but I went through this many times getting this error.  This is what I'm seeing using DDEV to set this up.

It could be an error with CL Server, but I made sure then endpoint was accessible to anonymous users in the Drupal settings.
There is a part in the walkthrough where it says this:
"Storybook will start in http://localhost:6006/ and you will see a black and red screen with an error. This is because you need to set the Components config in Drupal."
As you can see in the screenshot, I am seeing a black and red screen with an error in storybook, but I'm not sure where to go to set the Components config in Drupal nor what to set in the config if that is indeed the problem.

I'm just following up.  Is anybody else seeing this error or is there a step I'm missing that will resolve the Storybook issue mentioned above.

@fogpuddle what are you seeing in the JS console?

Is the module/theme that contains the components enabled?
Do click on that link to see if it paints the component in Drupal.

@e0ipso The theme that contains the components was enabled.  When clicked the link, I get "Cannot GET /_cl_server."
I'm wondering if it's something in the DDEV configuration or development.services.yml file that's preventing the Drupal connection.  I'll take another look, but I'm not too knowledgable about those settings.

@e0ipso Coming back to this, I was able to resolve the 404 issue after many reinstalls.  I believe it had to do with Drupal configurations and/or caching issues, but I couldn't pinpoint.


[BUG]

When i add proxyscrape premium proxies all give retries but proxy are working. i tried multiple configs

OB1 is not supported anymore, switch to OB2


Return a immutable singleton for Task.forResult(null) and Task.cancelled()

Currently each call to Task.forResult(null) and Task.cancelled() create new instances of Task and TaskCompletionSource, which are exactly the same for each execution.
These methods can be extremely common in codebases, especially Task.forResult(null), which is used internally in Bolts-Android and Parse-SDK-Android from converting null return values in continuations to stubbing non-asynchronous methods with an asynchronous method signature.
We can optimize these calls by reusing the same value and reduce the amount of memory allocated in applications relying on Bolts and we can do this since each return value is equivalent and essentially immutable.
/cc @nlutsenko

:+1:

We'd also benefit from caching Task.forResult(true|false). Any other additions that would seem beneficial?

Let's do this!!!


allow --prefix '' blank string

Reverts this line https://github.com/ymtszw/setem/pull/6/files#diff-485d4d3fda87eae206b03048bbd5d49998ce8eb99d87741ea67bdb77bec9b087R44
--prefix '' will result in options.prefix === "" empty string (a falsey value in Javascript)
const prefix = options.prefix || "s_";

Then const prefix would be assigned as "s_"

Ah good catch! I was unaware of this subtlety.
Can you provide some test on this? See setem.test.sh, and add some fixture if needed.

sorry for the delay. added the test


Mouse Wheel Scrolling does not work properly (the bug fix)

Hi,
I apologize in advance if the bug has been already reported and fixed.
Just in case here is the fix (line # 2394):
                      $elm.bind('wheel mousewheel DomMouseScroll MozMousePixelScroll', function (evt) {
                          // use wheelDeltaY

                          var newEvent = GridUtil.normalizeWheelEvent(evt);

                          var args = { target: $elm };
                          if (newEvent.deltaY !== 0) {
                              var scrollYAmount = newEvent.deltaY * -120;

                              // Get the scroll percentage
                              var scrollYPercentage = (containerCtrl.viewport[0].scrollTop + scrollYAmount) / rowContainer.getVerticalScrollLength();

                              // Keep scrollPercentage within the range 0-1.
                              if (scrollYPercentage < 0) { scrollYPercentage = 0; }
                              else if (scrollYPercentage > 1) { scrollYPercentage = 1; }

                              args.y = { percentage: scrollYPercentage, pixels: scrollYAmount };

                              // Let the parent container scroll if the grid is already at the top/bottom
                              if (args.y.percentage !== 0 && args.y.percentage !== 1) {
                                  evt.preventDefault();
                              }
                          }
                          if (newEvent.deltaX !== 0) {
                              var scrollXAmount = newEvent.deltaX * -120;

                              // Get the scroll percentage
                              var scrollLeft = GridUtil.normalizeScrollLeft(containerCtrl.viewport);
                              var scrollXPercentage = (scrollLeft + scrollXAmount) / (colContainer.getCanvasWidth() - colContainer.getViewportWidth());

                              // Keep scrollPercentage within the range 0-1.
                              if (scrollXPercentage < 0) { scrollXPercentage = 0; }
                              else if (scrollXPercentage > 1) { scrollXPercentage = 1; }

                              args.x = { percentage: scrollXPercentage, pixels: scrollXAmount };

                              // Let the parent container scroll if the grid is already at the top/bottom
                              if (args.x.percentage !== 0 && args.x.percentage !== 1) {
                                  evt.preventDefault();
                              }
                          }

                          uiGridCtrl.fireScrollingEvent(args);
                      });

Thanks,
Sergey

Hi,
Indeed the bug has been already reported #3340
A pull request is open.

Hi,
I use version v3.0.0-RC.18-d9b2314 - 2015-01-06

Closing as a duplicate.

@PaulL1 : I think it's related to scrolling propagating to the parent. After I updated the version it's gone.
Thanks,
Sergey