nan gradient when tf.where is used

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock
example script provided in TensorFlow):  Yes
OS Platform and Distribution (e.g.,
Linux Ubuntu 16.04): Debian GNU/Linux 10 (buster)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if
the issue happens on mobile device:
TensorFlow installed from (source or
binary): binary
TensorFlow version (use command below): v2.1.0-rc2-17-ge5bf8de 2.1.0 / v1.12.1-29016-g38797a1c8b 2.2.0-dev20200407
Python version: 3.7.7
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: - GPU model and memory:

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
Well-defined function with tf.where has nan gradients at points where tf.where inactive branch is undefined.
Describe the expected behavior
Inactive branch should be ignored in gradients calculations.
Standalone code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
import tensorflow as tf

for ex in range(-3, 3):
    x = tf.convert_to_tensor(10.**ex)
    with tf.GradientTape() as g:
        g.watch(x)
        y = tf.where(x >= -1., x, tf.math.log1p(-x))
#         y = tf.where(x >= -1., x, tf.math.log(1.-x))
#         y = tf.where(x >= -1., x, 1./(1.-x))
    dy_dx = g.gradient(y, x)
    print(f'y({x})={y}, dy/dx({x})={dy_dx}')

All 3 functions above are well defined for positive values used for testing. Still they show no gradient at point 1.. while it has to be equal to 1.
y(0.0010000000474974513)=0.0010000000474974513, dy/dx(0.0010000000474974513)=1.0
y(0.009999999776482582)=0.009999999776482582, dy/dx(0.009999999776482582)=1.0
y(0.10000000149011612)=0.10000000149011612, dy/dx(0.10000000149011612)=1.0
y(1.0)=1.0, dy/dx(1.0)=nan
y(10.0)=10.0, dy/dx(10.0)=1.0
y(100.0)=100.0, dy/dx(100.0)=1.0

Other info / logs Include any logs or source code that would be helpful to
diagnose the problem. If including tracebacks, please include the full
traceback. Large logs and files should be attached.

I have tried on colab with TF version 2.1.0 , 2.2.0-rc2 and was able to reproduce the issue.Please, find the gist here. Thanks!

This is due to a limitation limitation in how gradients are calculated. Unfortunately, it is unlikely to be fixed in the foreseable future.
You can find more detail here, along with a recipe for how to avoid it: https://stackoverflow.com/questions/33712178/tensorflow-nan-bug/42497444#42497444
In short, if the input to a tf.where contains NaNs, the gradient will always be NaN, regardless whether the input is actually used or not, and the workaround is to prevent the inputs from ever containing NaNs.

Shouldn't this be documented with big warning in tf.where docs in this case?

Indeed it should.

@mdanatg Hello, this is my first time contributing to TensofFlow lib. From the thread I gather you would require the tf.where be updated. If it is so can I work on this?

Should the updated doc contain a something like a warning? or will a small note at the end about the input not being Nan will do? Also should the workaround for avoiding it also be added to the doc?

@joemaren @anorak-k
Sorry for the delay. Feel free to send a PR - it's only a matter of adding a paragraph to the docstring.
It text should be more in the lines of a warning. Something like: Important: if any of the inputs have NaN values, etc.. And yes, it should include the workaround as well, which is something in the lines of: instead of tf.where(x, ops_that_can_nan(z), ...), write tf.where(x, ops_that_can_nan(tf.where(x, z, safe_value)), ...).

@mdanatg I have added the change and raised a PR #38467

@mdanatg Thanks for your reply. However, I would like to mention that this behavior also happens when the generated value in the inactive branch is not finite (i.e. inf or -inf). Here is a minimal reproducible example:
import tensorflow as tf

a = tf.Variable(10.)
with tf.GradientTape() as tape:
  out = tf.where(a < 15., a, tf.math.pow(10.0, tf.math.exp(a)))
  grads = tape.gradient(out, a)

print(grads)
# tf.Tensor(nan, shape=(), dtype=float32)

And also if we reverse the condition such that the branch with infinite value is selected, the gradient would be infinite (which is a bit surprising that it does not generate nan instead, like above):
with tf.GradientTape() as tape:
  out = tf.where(a > 15., a, tf.math.pow(10.0, tf.math.exp(a)))
  grads = tape.gradient(out, a)

print(grads)
# tf.Tensor(inf, shape=(), dtype=float32)

So this behavior happens for both nan and infinite values in inactive branch. I wish it wasn't like this, because it's a bit unreasonable (unfortunately, even gradient clipping does not help with this, because clipping a nan value produces nan in TF).
CC: @anorak-k for potential consideration in your PR after @mdanatg confirms this.

@mkaze that's true - nan, inf and any other special FP value will disrupt the gradient calculation.
What happens internally is that the gradients are aggregated in this fashion: 1 * <grad of branch taken> + 0 * <grad of branch not taken>. In the former case, you have 0 * inf = nan. In the latter case, you have 1 * inf = inf. I agree it's very confusing, unfortunately a naive fix would add significant overhead to gradient calculations.
Moreover, the forward calculation doesn't need to result in a nan or inf. You can also get weird results if the gradient alone is nan or inf. For example, the cube root function is defined and well-behaved everywhere, but its derivative at zero is infinite. So this will give you a nan gradient too:
a = tf.Variable(0.0)
with tf.GradientTape() as tape:
  out = tf.where(a < 1, a, tf.pow(a, 1.0/3.0))
  grads = tape.gradient(out, a)
print(grads)

I think the tf.where workaround is useful with infinite values as well, so long as the branch not taken is forced to take a gradient that can be safely multiplied by 0. For your example, it would be something like this:
dummy_safe_value = 0
safe_a = tf.where(a > 15., dummy_safe_value, a)
out = tf.where(a > 15., a, tf.math.pow(10.0, tf.math.exp(safe_a)))

I agree that it sometimes can be impractical to do, but in principle it should always be possible as long as you control the inputs to the sensitive functions - all they have to do is force finite values in all the elements that are dropped.

I want to fix the issue #38349

This is due to a limitation limitation in how gradients are calculated. Unfortunately, it is unlikely to be fixed in the foreseable future.
You can find more detail here, along with a recipe for how to avoid it: https://stackoverflow.com/questions/33712178/tensorflow-nan-bug/42497444#42497444
In short, if the input to a tf.where contains NaNs, the gradient will always be NaN, regardless whether the input is actually used or not, and the workaround is to prevent the inputs from ever containing NaNs.

You can simply have it raise a value error if its getting Nan inputs. Or does it not work like that?

Can I work on this issue if someone isn't now?

@tushar-dalal The challenge is that verifying for such NaN inputs can be taking on performance. When debugging, tf.debugging.check_numerics can indeed help with that.
@unicorn-io Feel free to tackle it, but note that it's extremely challenging to solve. That said, there was a PR (#38467) to add a warning message to the docs of tf.where, it would be useful to revive it.

I am motivated to do this can you give me some tips to start with I will try my best to understand and resolve this issue.

I am motivated to do this can you give me some tips to start with I will try my best to understand and resolve this issue. @mdanatg

@unicorn-io You can start by looking at the gradient code and understandign how it works. Then you can reproduce when happens in the case of a where with bad gradients.

Cool I'll get to it

Hey i would like to work on it. can also help please

Cool I'll get to it

This bug is unfortunate unfixale as of now it seems.

It's indeed very challenging to fix. However, the documentation of affected ops, like tf.where can still be updated to alert the users about it.

@mdanatg isn't #38497 addressing this and is closed?

You mean #38467? It's closed due to staleness, and it would be useful to revive. By the looks of it it's safe to assume noone else is working on it.

Seems like its a long time since the last activity. Is this issue still open to be worked on?

I think so. There are two parts to it: (1) updating the docs of tf.where, which is fairly straightforward, and (2) actually trying to address the issue, which is a significant undertaking because it involves a rather fundamental issue.

Is this issue still addressable ?

Nice to be part of the group.
Please, have a look to my pull request for the workaround: #41721
I'm going to work on the main issue too.

@codeadmin-peritiae The PR appears to be empty. Perhaps there's an issue with the git client?

Just to follow up on the events. It looks like codeadmin-peritiae had an issue with his original PR #41721 where he had trouble with his SSH certificate. He then opened up another PR #41775 which is currently blocked since some of the checks haven't completed. By the looks of it, the documentation update part of this problem is almost completed.

I am looking for Risk Product manager & Hyderabad with 10-13 yrs experience. For this profile I am looking for candidates who have started their career in coding/programming and later moved into fintech domain and should be currently working as product manager in risk computation.
What I am getting is Data scientist/Business Analyst Profile which are not good as they don't have previous experience in coding. Budget is INR 2.7 to 3.3 Mn.
Interested? mail me for detailed JD on<EMAIL_ADDRESS>

Is it issue solvable for a beginner ? if yes can I work on it?

This issue should be closed, #41775 got merged and fixed the issue with the documentation.


Syntax help is only available online

Have run update-help, but it does not fix the issue. When I look for help on the command syntax, the local help does not offer any.
Output of help "search-adaccount -full"
PS C:> $PSVersionTable
Name                           Value

PSVersion                      5.1.17134.165
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17134.165
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
PS C:> help Search-ADAccount -Full
NAME
Search-ADAccount
SYNOPSIS
Gets Active Directory user, computer, or service accounts.
SYNTAX
Search-ADAccount [<CommonParameters>]
DESCRIPTION
The Search-ADAccount cmdlet retrieves one or more user, computer, or service accounts that meet the criteria specified by the parameters. Search criteria include account and
password status. For example, you can search for all accounts that have expired by specifying the AccountExpired parameter. Similarly, you can search for all accounts with an
expired password by specifying the PasswordExpired parameter. You can limit the search to user accounts by specifying the UsersOnly parameter. Similarly, when you specify the
ComputersOnly parameter, the cmdlet only retrieves computer accounts.
Some search parameters, such as AccountExpiring and AccountInactive use a default time that you can change by specifying the DateTime or TimeSpan parameter. The DateTime
parameter specifies a distinct time. The TimeSpan parameter specifies a time range from the current time. For example, to search for all accounts that expire in 10 days,
specify the AccountExpiring and TimeSpan parameter and set the value of TimeSpan to "10.00:00:00". To search for all accounts that expire before December 31, 2012, set the
DateTime parameter to "12/31/2012".

PARAMETERS
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
None
OUTPUTS
Microsoft.ActiveDirectory.Management.ADAccount
    Returns one or more account objects that meet the conditions set by the parameters.

-------------------------- EXAMPLE 1 --------------------------

C:\PS>Search-ADAccount -AccountDisabled | FT Name,ObjectClass -A

Name            ObjectClass
----            -----------
Guest           user
krbtgt          user
krbtgt_51399    user
AmyAl-LPTOP     computer
DeepakAn-DSKTOP computer

Description

-----------

Returns all users, computers and service accounts that are disabled.
-------------------------- EXAMPLE 2 --------------------------

C:\PS>Search-ADAccount -AccountDisabled -UsersOnly | FT Name,ObjectClass -A

Name         ObjectClass
----         -----------
Guest        user
krbtgt       user
krbtgt_51399 user

Description

-----------

Returns all users that are disabled.
-------------------------- EXAMPLE 3 --------------------------

C:\PS>Search-ADAccount -AccountExpired | FT Name,ObjectClass -A

Name            ObjectClass
----            -----------
Greg Chapman    user
Claus Hansen    user
Tomasz Bochenek user

Description

-----------

Returns all users, computers and service accounts that are expired.
-------------------------- EXAMPLE 4 --------------------------

C:\PS>Search-ADAccount -AccountExpiring -TimeSpan 6.00:00:00 | FT Name,ObjectClass -A

Name           ObjectClass
----           -----------
Iulian Calinov user
John Campbell  user
Garth Fort     user

Description

-----------

Returns all users, computers and service accounts that will expire in the next 6 days.
-------------------------- EXAMPLE 5 --------------------------

C:\PS>Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | FT Name,ObjectClass -A

Name                        ObjectClass
----                        -----------
FABRIKAM-RODC1              computer
Guest                       user
krbtgt                      user
krbtgt_51399                user
Almudena Benito             user
Aaron Con                   user
Adina Hagege                user
Aaron Nicholls              user
Aaron M. Painter            user
Jeff Phillips               user
Flemming Pedersen           use

Description

-----------

Returns all accounts that have been inactive for the last 90 days.
-------------------------- EXAMPLE 6 --------------------------

C:\PS>Search-ADAccount -PasswordExpired | FT Name,ObjectClass -A

Name                        ObjectClass
----                        -----------
Stan Orme                   user
Danni Ortman                user
Matej Potokar               user

Description

-----------

Returns all accounts where the password has expired.
-------------------------- EXAMPLE 7 --------------------------

C:\PS>Search-ADAccount -PasswordNeverExpires | FT Name,ObjectClass -A

Name           ObjectClass
----           -----------
Guest          user
Toni Poe       user
Anders Riis    user
Fabien Hernoux user

Description

-----------

Returns all accounts with a password that will never expire.
-------------------------- EXAMPLE 8 --------------------------

C:\PS>Search-ADAccount -LockedOut | FT Name,ObjectClass -A

Name           ObjectClass
----           -----------
Toni Poe       user

Description

-----------

Returns all accounts that have been locked out.
-------------------------- EXAMPLE 9 --------------------------

C:\PS>Search-ADAccount -AccountDisabled -ComputersOnly | FT Name,ObjectClass -A

Name           ObjectClass
----           -----------
TPOE-PC1       computer

Description

-----------

Returns all disabled computer accounts.
-------------------------- EXAMPLE 10 --------------------------

C:\PS>Search-ADAccount -AccountExpiring -DateTime "3/18/2009" | FT Name,ObjectClass -A

Name         ObjectClass
----         -----------
Anders Riis  user

Description

-----------

Returns all accounts which expire on the 18th of March, 2009.
-------------------------- EXAMPLE 11 --------------------------

C:\PS>Search-AdAccount -AccountDisabled -SearchBase "DC=AppNC" -Server "FABRIKAM-SRV1:60000"

Enabled               : False
Name                  : SanjayPatel
UserPrincipalName     :
PasswordNeverExpires  :
LockedOut             : False
ObjectGUID            : d671de28-6e40-42a7-b32c-63d336de296d
ObjectClass           : user
SID                   : S-1-510474493-936115905-2231798853-1260534229-4171027843-767619944
PasswordExpired       : False
LastLogonDate         :
DistinguishedName     : CN=SanjayPatel,OU=AccountDeptOU,DC=AppNC
AccountExpirationDate :

Description

-----------

Returns all users, computers and service accounts that are disabled in the LDS instance: "FABRIKAM-SRV1:60000".

RELATED LINKS
Online Version: http://go.microsoft.com/fwlink/p/?linkid=291105
Clear-ADAccountExpiration
Disable-ADAccount
Enable-ADAccount
Get-ADAccountResultantPasswordReplicationPolicy
Set-ADAccountControl
Set-ADAccountExpiration
Set-ADAccountPassword
Unlock-ADAccount
PS C:>

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

ID: 1c402cdf-7948-b74e-93de-449a90eaf56a
Version Independent ID: beea1c46-1acf-8856-48c1-36037b737b2f
Content: Search-ADAccount (activedirectory)
Content Source: docset/winserver2012-ps/activedirectory/Search-ADAccount.md
Product: w10
GitHub Login: @brianlic-msft
Microsoft Alias: brianlic

@officedocsbot assign @yogkumgit

Hello @neilfairall thanks for reaching out.
Could you please specify what is the issue with the Search-ADAccount article?
Thank you!

@neilfairall  We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.

@officedocsbot close

Oh boy, I don't know how I could have been any clearer. As demonstrated in the example above, when one runs "get-help search-adaccount -full", there is no syntax help - none of the command parameters are explained.
I'm expecting something like this:
SYNTAX     Get-ADUser [-AuthType {Negotiate | Basic}] [-Credential <PSCredential>] [-Properties <String[]>] [-ResultPageSize <Int32>] [-ResultSetSize <Int32>] [-SearchBase     <String>] [-SearchScope {Base | OneLevel | Subtree}] [-Server <String>] -Filter <String> [<CommonParameters>]
    Get-ADUser [-Identity] <ADUser> [-AuthType {Negotiate | Basic}] [-Credential <PSCredential>] [-Partition <String>] [-Properties <String[]>] [-Server <String>]     [<CommonParameters>]
   Get-ADUser [-AuthType {Negotiate | Basic}] [-Credential <PSCredential>] [-Properties <String[]>] [-ResultPageSize <Int32>] [-ResultSetSize <Int32>] [-SearchBase     <String>] [-SearchScope {Base | OneLevel | Subtree}] [-Server <String>] -LDAPFilter <String> [<CommonParameters>]
and instead I get:
SYNTAX     Search-ADAccount [<CommonParameters>]

Hello @neilfairall
I think you misunderstood my past question, I asked what you see was wrong with the online version of the documentation of the article, as you opened an issue here.
Besides that, I tried the PowerShell command Get-Help Search-ADAccount -Full and the output included the parameters description. So it seems you are having an specific issue  that needs to be handled thru support services
Hope this information helps you.


Fix the problem of kiwisolver not compling in macOS

Motivation for this change
The package kiwisolver, which is a dependency of matplotlib, cannot compile in macOS now. The reason is similar to https://github.com/NixOS/nixpkgs/issues/26531.
Things done
Similar solution as https://github.com/NixOS/nixpkgs/pull/26709
The package installs successfully after the change.

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Success on aarch64-linux (full log)
Attempted: python.pkgs.kiwisolver, python3.pkgs.kiwisolver
Partial log (click to expand)
/build/kiwisolver-1.0.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/m2krl2sbgy3x4iayffczbifas9qiq6fp-python2.7-kiwisolver-1.0.1
shrinking /nix/store/m2krl2sbgy3x4iayffczbifas9qiq6fp-python2.7-kiwisolver-1.0.1/lib/python2.7/site-packages/kiwisolver.so
strip is /nix/store/min150lkigznaayzpwvf8d4jdl1dqvx6-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/m2krl2sbgy3x4iayffczbifas9qiq6fp-python2.7-kiwisolver-1.0.1/lib
patching script interpreter paths in /nix/store/m2krl2sbgy3x4iayffczbifas9qiq6fp-python2.7-kiwisolver-1.0.1
checking for references to /build in /nix/store/m2krl2sbgy3x4iayffczbifas9qiq6fp-python2.7-kiwisolver-1.0.1...
/nix/store/m2krl2sbgy3x4iayffczbifas9qiq6fp-python2.7-kiwisolver-1.0.1
/nix/store/0pz3xqw927fp3rc6ivx6nrih11p1s28k-python3.6-kiwisolver-1.0.1


feat: Put the Child with Least Row Count in the First Position of Intersect

Proposed changes
In this pull request, we optimize the ordering of children in the Intersect operator to improve query performance. The proposed change is to place the child with the least row count in the first position of the Intersect operator.
The rationale behind this optimization is that the Intersect operator works by first evaluating the leftmost child and then iterating through the results of the other children to find matching rows. By placing the child with the least row count first, we can minimize the number of iterations required to find the matching rows, thereby reducing the overall execution time of the query.


Add a CONTRIBUTING.md file with contribution guidelines

Repo should contain a contribution guidelines to help new developers get started.

added an initial draft CONTRIBUTING.md to get you guys started :)


LUCENE-9583: Remove RandomAccessVectorValuesProducer

This change folds the RandomAccessVectorValuesProducer interface into
RandomAccessVectorValues. This reduces the number of interfaces and clarifies
the cloning/ copying behavior.
This is a small simplification related to LUCENE-9583, but does not address the
main issue.

Thank you for the reviews. I'm going to merge since it seems you're both on board with the change.


Selectively training a branch of multi-output model

I have a multi output Keras model with a structure resembling this:
s = some_shared_layers()(input)
non_trainable1 = Dense(trainable=False) (s)
non_trainable2 = Dense(trainable=False) (s)
trainable = Dense() (s)

model = Model(input, outputs=[non_trainable1, non_trainable2, trainable])

My model first computes a forward pass and uses the 1st 2 outputs to manipulate the input. It then computes another forward pass to get the 3rd output.
out1, out2,_ =model.predict(input_data)
processed_data = foo(input_data, out1, out2)
_,_, out3 = model.predict(processed_data)

How should I call model.fit() to train only the trainable layer? If I exclude the losses for the other outputs, Keras warns we will not be expecting any data to be passed to "non_trainable1" during training and excludes them from the computational graph.
Is there a better way to structure the model for this task?

You could hypothetically set the loss and loss_weights to None for those outputs. model.compile('adam', loss=[None,None,whatever], loss_weights=[None,None,1.],...). When you train, model.fit(inputs, [None,None,target]). That seems a little awkward though and requires a lot of knowledge of internals. Easier to just take advantage of sharing weights.
Make one model for prediction that has 3 outputs. Make one model for training that has one output. They will share weights if you build them correctly, just be careful with saving and loading. Don't even need to worry about trainable=False in that situation.
Cheers

@bstriner thanks. 2 separate models is what I'm going with for now and it does the job, with a caveat. I wanted to use an ImageDataGenerator on model2 (single output) and thought I could perhaps call model1 inside a preprocessing_function passed to the generator.
However, running model2.fit_generator again led to the same issue (unshared layers not part of the graph)
For now, I'm running the original input on model1 separately, dumping outputs to a .npy file, and then passing that to the generator when I later train model2.
Let me know if there's a workaround to this


can not set joint limit larger than [-90,90] degrees.

problem in rapier, see /rapier/issues/378

solved by using costumed dependency


bump ical4j from 1.0.7 to 3.0.18

Bumps ical4j from 1.0.7 to 3.0.18.

Release notes
Changelog
Commits

FINERACT-963

FINERACT-953

https://github.com/apache/fineract/pull/907


Color filters.

Use color filters to create a stressing visual effect when the player is close to being catched by the monster (time runs out).

Is this still relevant to us?


sap.ui.ux3.NavigationBar doesn't scroll to newly added items

OpenUI5 version:latest
Browser/version (+device/version):latest versions of all major browsers
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible):http://jsbin.com/tikufejasebi/2/edit
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:
1.Click on button multiple times to add enough items to cause the overflow arrows to appear
2.Press right arrow to scroll to last item
3.Press button to add another item
What is the expected result? Expected that when an item is added and it's not currently visible, the navbar would automatically scroll to make it visible.
What happens instead? When adding a new item that doesn't fit in current view, the items do not scroll to make it visible. And when the view has been scrolled, adding a new item resets the scroll back to the start.
Any other information? (attach screenshot if possible)

The issue has been fixed with the following commit febac16080abe4466612e9f6267b6d584345d968.


About find_candidate_object_locations

Hi, I don't know if this is the right place for this question, but I was wondering how find_candidate_object_locations actually finds the candidates. I was reading the description of what this function ensures, but I couldn't quite understand it. The description had referenced a paper "Segmentation as Selective Search for Object Recognition by Koen E. A. van de Sande, et al.", but said the implementation deviated from the paper slightly and to refer to the code, which unfortunately I don't understand either.
So my question is, how exactly is this function finding the candidates or bounding boxes of a given image?

This forum isn't really the appropriate place to ask for computer vision/algorithm help.


Add full TA7 References

(no version bump included in this case, might wrap this up with some of the other reference additions forthcoming?)

I was working on a branch for this, but will abandon it and add review comments here as I see any missing stuff
Using 3rd Edition 2023 as reference: TA7-Leasehold-Information-Form.pdf

Add mapping for address fields ? (line1,2, town, postcode)
"ta7Ref": "5.8", is a yesNo question but if yes, requires details
"ta7Ref": "11.3", the current title is: "Has a Leaseholder Deed of Certificate been served on the Landlord in relation to the property or remedial works required to the property?", which is quite different to the actual ta7 question, "Is there a Leaseholder Deed of Certificate for the property?". Should we resolve this by adding a "ta7Title" key?
"ta7Ref": "11.1" is missing, can be added on "buildingSafetyRemediation" ?

"ta7Title": "Have any remediation works on the building been proposed or carried out?",
11.1.0, 11.1.1 can be added under details and attachments respectively

For 11.5, title is "Landlord's Certificate." but the ta7Tile and options are different

"ta7Title": "Has the seller received a Landlord’s Certificate and the accompanying evidence?",
"ta7enum": [
"Yes",
"No"
],
If yes, attached or to follow

For 11.3b, title & options are different
"title": " Please supply a copy of the leaseholder deed of certificate and the accompanying evidence",
"type": "string",
"enum": [
"Attached",
"To follow"
]

have left 5.8 as-is: No details referenced on TA7

Other properties have been added as proposed above @amolpednekar , and also extractOverlay.js updated to support e.g. ta7Enum and ta7Title, copying each of these into the ta7 overlay just as ta7Required would be, as their base enum, title and required properties in the overlay.

A point raised by @vivek656
@edmolyneux  - Looking at the below example, the pdtf-transaction.json  wont have "Not Applicable", and will fail validation in a non-form context
Feels like the default enum field should contain all possible values, and the overlay (Form) specific enums should be a subset of them

Good point. I'll fix


[docs] Rendering code through nbsphinx

See: https://github.com/CoffeaTeam/coffea-casa/pull/101
TBD: to be rechecked after merging.

Looks like it failed, as the gallery has vanished.
I'll look further.

I reverted PR https://github.com/CoffeaTeam/coffea-casa/pull/105, lets try not to give up and investigate it later :)

Most recent attempt is over here: https://github.com/CoffeaTeam/coffea-casa/pull/296, with the relevant gallery examples copied over into the coffea-casa directory. See also https://github.com/CoffeaTeam/coffea-casa/issues/292.


Jupyter notebook is not creating with volume set to ReadWriteMany

Bug Description
While creating a Jupyter Notebook, I created a volume with the option "ReadWriteMany". The logs are in the end
The volume is created in the Kubernetes:
$ kubectl get pvc -A NAMESPACE   NAME                                                                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         AGE admin       uat-workspace                                                                                Bound    pvc-ae4e34b4-da07-4576-81b0-fd2a9c2a248a   20Gi       RWX            csi-cinder-default   13m $ kubectl get pv -A NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                                                                STORAGECLASS         REASON   AGE pvc-ae4e34b4-da07-4576-81b0-fd2a9c2a248a   20Gi       RWX            Delete           Bound    admin/uat-workspace                                                                                csi-cinder-default            13m
To Reproduce

juju deploy bundle 1.8
juju refresh istio-pilot --channel latest/edge/pr-381 --trust --config default-gateway=kubeflow
juju refresh oidc-gatekeeper --channel latest/edge/pr-135 --trust
juju config dex-auth public-url=https://my.domain.com/
juju config oidc-gatekeeper public-url=https://my.domain.com/
juju config istio-pilot domain-name=my.domain.com
juju deploy self-signed-certificates
juju relate self-signed-certificates istio-pilot
apply workaround for this bug https://github.com/canonical/admission-webhook-operator/issues/126
create a jupyter-notebook with a volume with ReadWriteMany

Environment
Kubeflow bundle 1.8
Juju 3.1.7
Charmed Kubernetes 1.28
Kubernetes is on top of Openstack Yoga
Relevant Log Output
[W 2024-02-23 08:31:28.458 ServerApp] ServerApp.token config is deprecated in 2.0. Use IdentityProvider.token.
[I 2024-02-23 08:31:28.468 ServerApp] Package jupyterlab took 0.0000s to import
[I 2024-02-23 08:31:28.471 ServerApp] Package jupyter_server_fileid took 0.0026s to import
[I 2024-02-23 08:31:28.473 ServerApp] Package jupyter_server_mathjax took 0.0014s to import
[I 2024-02-23 08:31:28.479 ServerApp] Package jupyter_server_terminals took 0.0050s to import
[I 2024-02-23 08:31:28.507 ServerApp] Package jupyter_server_ydoc took 0.0269s to import
[I 2024-02-23 08:31:28.536 ServerApp] Package jupyterlab_git took 0.0291s to import
[I 2024-02-23 08:31:28.537 ServerApp] Package nbclassic took 0.0000s to import
[W 2024-02-23 08:31:28.539 ServerApp] A `_jupyter_server_extension_points` function was not found in nbclassic. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
[I 2024-02-23 08:31:28.540 ServerApp] Package nbdime took 0.0000s to import
[I 2024-02-23 08:31:28.540 ServerApp] Package notebook_shim took 0.0000s to import
[W 2024-02-23 08:31:28.540 ServerApp] A `_jupyter_server_extension_points` function was not found in notebook_shim. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
[I 2024-02-23 08:31:28.547 ServerApp] jupyter_server_fileid | extension was successfully linked.
[I 2024-02-23 08:31:28.554 ServerApp] jupyter_server_mathjax | extension was successfully linked.
[I 2024-02-23 08:31:28.559 ServerApp] jupyter_server_terminals | extension was successfully linked.
[I 2024-02-23 08:31:28.564 ServerApp] jupyter_server_ydoc | extension was successfully linked.
[I 2024-02-23 08:31:28.571 ServerApp] jupyterlab | extension was successfully linked.
[I 2024-02-23 08:31:28.571 ServerApp] jupyterlab_git | extension was successfully linked.
[I 2024-02-23 08:31:28.577 ServerApp] nbclassic | extension was successfully linked.
[I 2024-02-23 08:31:28.577 ServerApp] nbdime | extension was successfully linked.
[W 2024-02-23 08:31:28.578 ServerApp] notebook_shim | error linking extension: [Errno 13] Permission denied: '/home/jovyan/.local'
    Traceback (most recent call last):
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 633, in get
        value = obj._trait_values[self.name]
                ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
    KeyError: 'browser_open_file'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 633, in get
        value = obj._trait_values[self.name]
                ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
    KeyError: 'runtime_dir'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/manager.py", line 342, in link_extension
        extension.link_all_points(self.serverapp)
      File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/manager.py", line 224, in link_all_points
        self.link_point(point_name, serverapp)
      File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/manager.py", line 214, in link_point
        point.link(serverapp)
      File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/manager.py", line 136, in link
        linker(serverapp)
      File "/opt/conda/lib/python3.11/site-packages/notebook_shim/nbserver.py", line 109, in _link_jupyter_server_extension
        members = diff_members(serverapp, nbapp)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/notebook_shim/nbserver.py", line 62, in diff_members
        m1 = public_members(obj1)
             ^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/notebook_shim/nbserver.py", line 56, in public_members
        members = inspect.getmembers(obj)
                  ^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/inspect.py", line 595, in getmembers
        return _getmembers(object, predicate, getattr)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/inspect.py", line 573, in _getmembers
        value = getter(object, key)
                ^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 688, in __get__
        return t.cast(G, self.get(obj, cls))  # the G should encode the Optional
                         ^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 636, in get
        default = obj.trait_defaults(self.name)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 1900, in trait_defaults
        return t.cast(Sentinel, self._get_trait_default_generator(names[0])(self))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 1243, in __call__
        return self.func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 1606, in _default_browser_open_file
        return os.path.join(self.runtime_dir, basename)
                            ^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 688, in __get__
        return t.cast(G, self.get(obj, cls))  # the G should encode the Optional
                         ^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 636, in get
        default = obj.trait_defaults(self.name)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 1900, in trait_defaults
        return t.cast(Sentinel, self._get_trait_default_generator(names[0])(self))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.11/site-packages/jupyter_core/application.py", line 110, in _runtime_dir_default
        ensure_dir_exists(rd, mode=0o700)
      File "/opt/conda/lib/python3.11/site-packages/jupyter_core/utils/__init__.py", line 26, in ensure_dir_exists
        os.makedirs(path, mode=mode)
      File "<frozen os>", line 215, in makedirs
      File "<frozen os>", line 215, in makedirs
      File "<frozen os>", line 215, in makedirs
      File "<frozen os>", line 225, in makedirs
    PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local'
Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 633, in get
    value = obj._trait_values[self.name]
            ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'runtime_dir'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/bin/jupyter-lab", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/application.py", line 607, in launch_instance
    serverapp = cls.initialize_server(argv=args)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/application.py", line 577, in initialize_server
    serverapp.initialize(
  File "/opt/conda/lib/python3.11/site-packages/traitlets/config/application.py", line 117, in inner
    return method(app, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 2602, in initialize
    self.init_configurables()
  File "/opt/conda/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 1912, in init_configurables
    "connection_dir": self.runtime_dir,
                      ^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 688, in __get__
    return t.cast(G, self.get(obj, cls))  # the G should encode the Optional
                     ^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 636, in get
    default = obj.trait_defaults(self.name)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/traitlets/traitlets.py", line 1900, in trait_defaults
    return t.cast(Sentinel, self._get_trait_default_generator(names[0])(self))
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/jupyter_core/application.py", line 110, in _runtime_dir_default
    ensure_dir_exists(rd, mode=0o700)
  File "/opt/conda/lib/python3.11/site-packages/jupyter_core/utils/__init__.py", line 26, in ensure_dir_exists
    os.makedirs(path, mode=mode)
  File "<frozen os>", line 215, in makedirs
  File "<frozen os>", line 215, in makedirs
  File "<frozen os>", line 215, in makedirs
  File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local'

Additional Context
No response

This also happens on ReadOnlyMany volumes for notebooks

@natalytvinova does it happen for ReadWriteOnce PVCs/volumes for notebooks?
The problem above is that

the RWX PVC ends up being mounted and owned by root/root user
the non-root user inside the notebook does not have permission to write in that mounted folder

The Notebook's pod has set .spec.securityContext = 100 which should ensure that the mounted PVCs are owned by the expected group. This is the case and how the RWO PVCs are read/write-able but seems to not be the case for RWX PVCs

From the K8s docs I see that .spec.securityContext controls:

A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. > The permission bits are OR'd with rw-rw----
If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.

https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context
So most probably this has to do with the StorageClass and kubelet is unable to change the GID of the mounted RWX PVC. So we'll need to better understand the storage provider, which in this case I understand it's Cinder

Hi @kimwnasptd nope ReadWriteOnce volumes are okay
Yes, in this case it is Cinder
I checked the configs for openstack-integrator, openstack-cloud-controller and cinder-csi charms and nothing seems related to this

Adding more context here after some exploration. Also thanks to @addyess for his help looking through the CSI code and issues.
First of all, Kubeflow Notebooks container .spec.securityContext = 100 in their PodSpec. This field tells kubernetes (kubelet) what GID and UID to use for the volume it mounts on the Pod
https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1

special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. > The permission bits are OR'd with rw-rw----
If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.

The problem in this case is that upstream Cinder CSI driver does not support fsGroup for RWX volumes https://github.com/kubernetes/cloud-provider-openstack/issues/2075, and that's why the RWX volume ends up being mounted as root/root.
Lastly, for reference, our Charms that create the cinder-csi-default StorageClass is this one
https://github.com/canonical/cinder-csi-operator/blob/32c9361fcd3067c99ff4ba2a844d9dd12f2b7d36/src/storage_manifests.py#L106

So what happens in this case is:

The CSI Driver for volumes is handled by the cinder-csi-operator, and creates the cinder-csi-default storage class
The upstream CSI driver does not support fsGroup for RWX volumes
The Kubeflow notebook pod is setting fsGroup
RWO PVCs are handled correctly, and their permissions change accordingly
RWX PVCs of cinder-csi-default StorageClass don't change their permissions
The notebook doesn't have permissions to modify files in the root/root RWX volume that was mounted

Since this is more of a problem of the underlying storage infrastructure not respecting K8s constructs, which Kubeflow relies on, I'll go on and close the issue since there's not much we can do from Kubeflow side


[GOBBLIN-2028] make DagManagementStateStore return job status

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-2028

Description

[x] Here are some details about my PR, including screenshots (if applicable):
JobStatus (status of a dag node) is also a part of dag, so adding functionality of providing job status in DagManagementStateStore. Note that job status is still written in the store by JobStatusMonitor.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
updated the existing unit tests.

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

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

Project coverage is 41.31%. Comparing base (de50eaf) to head (35d1f9b).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #3905      +/-   ##
============================================
- Coverage     46.61%   41.31%   -5.31%
+ Complexity    11219     2195    -9024
============================================
  Files          2241      475    -1766
  Lines         88342    20174   -68168
  Branches       9673     2337    -7336
============================================
- Hits          41184     8335   -32849
+ Misses        43447    10955   -32492
+ Partials       3711      884    -2827

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


As a user, I would like to be able to unfollow an user, on their page

Acceptance Criteria:

[ ]  Have a button to unfollow a user
[ ] Should not be able to see cheeps from the unfollowed users in one's own timeline

Let us all look at this when next we meet


Using ui-sortable with an ng-repeat that is filtered - drag and drop doesn't work.

I created two fiddles to showcase the issue.
The first, uses no filter - and drag and drop works as intended.
http://jsfiddle.net/Lvc0u55v/2887/
The second uses a filter - and the drag and drop does not work (the items just go back).
http://jsfiddle.net/Lvc0u55v/2886/
Removing the ng-model will cause the filter drag and drop to work as intended, but I am not sure if this is a bug or intended behaviour?

As noted in README, you have to move the filtering in the controller,
otherwise the element matching with the model items breaks. Take a look at
the filtering examples found in README.

--
Thodoris Greasidis
Computer, Networking &
Communications Engineer


Conflicting dependencies --> failed tests

Maybe the Manifest.toml file needs updating?
https://aaowens.github.io/julia/2020/01/13/A-Newcomers-Guide-to-the-Julia-Package-Manager.html
ERROR: Unsatisfiable requirements detected for package Colors [5ae59095]:

 Colors [5ae59095] log:

 ├─possible versions are: [0.9.0, 0.9.2-0.9.6, 0.10.0-0.10.2, 0.11.0-0.11.2, 0.12.0] or uninstalled

 ├─restricted to versions 0.9.6 by an explicit requirement, leaving only versions 0.9.6

 └─restricted by compatibility requirements with FixedPointNumbers [53c48c17] to versions: [0.9.0, 0.9.2-0.9.5] or uninstalled — no versions left

   └─FixedPointNumbers [53c48c17] log:

     ├─possible versions are: [0.5.0-0.5.3, 0.6.0-0.6.1, 0.7.0-0.7.1, 0.8.0] or uninstalled

     └─restricted to versions 0.5.3 by an explicit requirement, leaving only versions 0.5.3

Removing the Manifest.toml file solves the problem, as suggested by:
https://stackoverflow.com/questions/56604755/cannot-reproduce-my-travis-ci-unsatisfiable-requirements-julia-error-locally


Added an Oxford comma for consistency

Works for me.

Yup.  It's probably my writing that established that consistency.  Let's keep it.


It's not possible to delete a "favorite"

After a click on "DELETE" nothing happens. So it's not possible to delete the Favorite.

Please see if you can delete favorite folder this evening or tomorrow


Error after upgrading to 0.10.0

npm 4.2.0
node v7.8.0
laravel 5.4
laravel mix 0.10.0

package.json
{
	"private": true,
	"scripts": {
		"dev": "npm run development",
		"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
		"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
		"watch-poll": "npm run watch -- --watch-poll",
		"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
		"prod": "npm run production",
		"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
	},
	"devDependencies": {
		"axios": "^0.16.1",
		"bootstrap-sass": "^3.3.7",
		"cross-env": "^3.2.3",
		"gulp": "^3.9.1",
		"jquery": "^3.1.1",
		"laravel-mix": "0.*",
		"lodash": "^4.17.4",
		"stylus": "^0.54.5",
		"stylus-loader": "^3.0.1",
		"vue": "^2.1.10"
	},
	"dependencies": {
		"rupture": "^0.6.2",
		"axios": "^0.15.3",
		"moment": "^2.17.1",
		"vuejs-datepicker": "^0.7.3"
	}
}

webpack.mix.js
let mix = require('laravel-mix');

mix.stylus('resources/assets/stylus/app.styl', '../resources/assets/css/app.css')
	.options({
		processCssUrls: false
	});

mix.sass('resources/assets/sass/bulma.sass', '../resources/assets/css/bulma.css')
	.options({
		processCssUrls: false
	});

mix.js([
	'resources/assets/js/app.js',
	'resources/assets/js/scroll.js',
	'resources/assets/js/navigation.js',
	'resources/assets/js/custom.js',
	'resources/assets/js/css.js',
	'resources/assets/js/numbers.js' // https://github.com/talmand/jquery-animate-numbers
], 'public/js/all.js');

mix.styles([
	'resources/assets/css/app.css',
	'resources/assets/css/bulma.css',
], 'public/css/app.css');

mix.scripts([
	'resources/assets/plugins/jquery.min.js',
	'resources/assets/plugins/bootstrap.min.js',
	'resources/assets/plugins/swiper.jquery.min.js',
	'resources/assets/plugins/lazysizes.js', // https://github.com/aFarkas/lazysizes
	// 'resources/assets/plugins/unveil.js',
	'resources/assets/js/header.js'
], 'public/js/header.js');

if (mix.config.inProduction) {
	mix.version();
}

Hello guys,
after upgrading and running npm run production I get:
npm run production

> @ production /Users/wise/Sites/tartaletka
> cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

 95% emitting

 DONE  Compiled successfully in 21195ms                                                                             4:59:04 PM

undefined:92
    throw new DefaultsError(msg, defs);
    ^
Error:

npm ERR! Darwin 16.6.0
npm ERR! argv "/usr/local/Cellar/node/7.3.0/bin/node" "/usr/local/bin/npm" "run" "production"
npm ERR! node v7.8.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ production: `cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ production script 'cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/wise/.npm/_logs/2017-04-18T14_59_05_378Z-debug.log

It's really a general error, don't you know, where the problem could be?
An error will be in the last mix.scripts( part. Is the syntax correct?
Thank you.

Even if I try to replace mix.scripts for mix.combine it doesn't work and throws the same error.

It's same like here: https://github.com/JeffreyWay/laravel-mix/issues/675

Do you get this error when you run npm run dev? Is it exclusive to production mode?

It fails when the production mode only.

Closing this, as it's a duplicate of #675.


InternalServerError: column 7474fe5b-9c4d-11ed-9d45-a9010fbd7a5e.a2f4b18f-e5e7-11ed-b37a-d3fa41f211f2 does not exist.

EdgeDB Version: 2.14+7aec755
EdgeDB CLI Version: 2.3.1+ef99779
OS Version: Ubuntu 20.04.5 LTS

I tried to migrate my database to the newest schema update, but the migration has failed with an InternalServerError:
edgedb error: InternalServerError: column 7474fe5b-9c4d-11ed-9d45-a9010fbd7a5e.a2f4b18f-e5e7-11ed-b37a-d3fa41f211f2 does not exist
  Server traceback:
      edb.errors.InternalServerError: column 7474fe5b-9c4d-11ed-9d45-a9010fbd7a5e.a2f4b18f-e5e7-11ed-b37a-d3fa41f211f2 does not exist

Migration:
CREATE MIGRATION m1oneswk7chg5cyhzgv6muoniyjsdc32jkqs6cdztuogd5nve2zdyq
    ONTO m1h3hqfkputkuh4mqb7mzg6jelupg3x6lxoa4owixd7ihsm6idrpxa
{
  CREATE ABSTRACT LINK default::with_linked_at {
      CREATE PROPERTY linked_at -> std::datetime {
          SET default := (std::datetime_of_statement());
          SET readonly := true;
      };
  };
  ALTER TYPE default::User {
      ALTER LINK albums {
          EXTENDING default::with_linked_at LAST;
      };
      ALTER LINK artists {
          EXTENDING default::with_linked_at LAST;
      };
      ALTER LINK following {
          EXTENDING default::with_linked_at LAST;
      };
      ALTER LINK tracks {
          EXTENDING default::with_linked_at LAST;
      };
  };
  ALTER TYPE default::Playlist {
      CREATE MULTI LINK followers EXTENDING default::with_linked_at -> default::User;
  };
  CREATE SCALAR TYPE default::position EXTENDING std::int64 {
      CREATE CONSTRAINT std::min_value(0);
  };
  CREATE ABSTRACT LINK default::with_position {
      CREATE PROPERTY position -> default::position {
          SET default := 0;
      };
  };
  ALTER TYPE default::Playlist {
      ALTER LINK tracks {
          EXTENDING default::with_linked_at,
          default::with_position LAST;
      };
  };
  ALTER TYPE default::User {
      ALTER LINK following {
          RESET EXPRESSION;
          RESET EXPRESSION;
          RESET OPTIONALITY;
          SET TYPE default::User;
      };
  };
  ALTER TYPE default::Album {
      ALTER LINK tracks {
          EXTENDING default::with_position LAST;
      };
  };
  ALTER TYPE default::User {
      CREATE MULTI LINK following_playlists := (.<followers[IS default::Playlist]);
  };
  ALTER TYPE default::Playlist {
      CREATE PROPERTY follower_count := (std::count(.followers));
  };
  ALTER TYPE default::User {
      ALTER LINK followers {
          USING (.<following[IS default::User]);
      };
  };
  ALTER TYPE default::User {
      ALTER LINK friends {
          USING (SELECT
              .following
          FILTER
              (.following IN .followers)
          );
      };
  };
};

Schema:
module default {
    scalar type AlbumType extending enum<`album`, `single`, `compilation`>;
    scalar type PrivacyType extending enum<`public`, `friends`, `private`>;

    abstract type CreatedAt {
        required property created_at -> datetime {
            default := datetime_of_statement();
            readonly := true;
        };
    }

    scalar type duration_ms extending int64 {
        constraint min_value(0);
    }

    scalar type position extending int64 {
        constraint min_value(0);
    }

    abstract link with_position {
        property position -> position {
            default := 0;
        };
    }

    abstract link with_linked_at {
        property linked_at -> datetime {
            default := datetime_of_statement();
            readonly := true;
        };
    }

    abstract type Entity extending CreatedAt {
        required property name -> str;

        property spotify_id -> str;
        property apple_music_id -> str;
        property yandex_music_id -> str;
    }

    abstract type Genres {
        required property genres -> array<str> {
            default := <array<str>>[];
        };
    }

    type Track extending Entity, Genres {
        required multi link artists -> Artist;

        required property explicit -> bool {
            default := false;
        };

        required property duration_ms -> duration_ms;

        multi link streams := .<track[is Stream];

        property stream_count := count(.streams);
        property stream_duration_ms := sum(.streams.duration_ms);

        link album := assert_single(.<tracks[is Album]);
    }

    type Artist extending Entity, Genres {
        multi link followers := .<artists[is User];

        property follower_count := count(.followers);

        multi link streams := .<artists[is Track].<track[is Stream];

        property stream_count := count(.streams);
        property stream_duration_ms := sum(.streams.duration_ms);

        multi link tracks := .<artists[is Track];
        multi link albums := .<artists[is Album];
    }

    type Album extending Entity, Genres {
        required multi link artists -> Artist;
        required multi link tracks extending with_position -> Track;

        required property album_type -> AlbumType {
            default := AlbumType.album;
        };

        required property release_date -> cal::local_date;

        property label -> str;

        property duration_ms := sum(.tracks.duration_ms);

        property track_count := count(.tracks);
    }

    type Playlist extending Entity {
        required link user -> User {
            on target delete delete source;
        };

        multi link followers extending with_linked_at -> User;

        property follower_count := count(.followers);

        multi link tracks extending with_linked_at, with_position -> Track;

        required property description -> str {
            default := "";
        };

        required property privacy_type -> PrivacyType {
            default := PrivacyType.public;
        };

        property duration_ms := sum(.tracks.duration_ms);

        property track_count := count(.tracks);
    }

    type Stream extending CreatedAt {
        required link user -> User {
            on target delete delete source;
        };

        required link track -> Track {
            on target delete delete source;
        };

        required property duration_ms -> duration_ms;
    }

    type User extending Entity {
        multi link tracks extending with_linked_at -> Track;
        multi link albums extending with_linked_at -> Album;
        multi link artists extending with_linked_at -> Artist;

        multi link playlists := .<user[is Playlist];

        multi link following extending with_linked_at -> User;

        multi link followers := .<following[is User];

        multi link friends := (select .following filter .following in .followers);

        property follower_count := count(.followers);

        multi link following_playlists := .<followers[is Playlist];

        multi link streams := .<user[is Stream];

        property stream_count := count(.streams);
        property stream_duration_ms := sum(.streams.duration_ms);

        required property verified -> bool {
            default := false;
        };

        required property premium -> bool {
            default := false;
        }

        required property privacy_type -> PrivacyType {
            default := PrivacyType.public;
        };

        required property email -> str {
            constraint exclusive;
        };
        required property password_hash -> str;
    }
}

Could you please share the schema from before trying to apply this migration?
(I probably could reverse engineer it from the migration, but it would be best if you could share it.)

I'm not exactly sure what the schema looked like before the update, but the entire commit history on the file is here.

Thanks! I have a minimization:
From this schema:
type T { multi link following := T; }

Try to migrate to
abstract link abs { property foo: str };
type T { multi link following extending abs -> T; }

which gives the migration
CREATE ABSTRACT LINK default::abs {
    CREATE PROPERTY foo: std::str;
};
ALTER TYPE default::T {
    ALTER LINK following {
        EXTENDING default::abs LAST;
    };
    ALTER LINK following {
        RESET EXPRESSION;
        RESET EXPRESSION;
        RESET OPTIONALITY;
        SET TYPE default::T;
    };
};

I think the problem then is that we are updating inhviews when doing the rebase in a way that fails to realize that the link table for following doesn't actually exist yet.
The solution here is trickier than just fixing that, though, because I don't think that computed pointers should have abstract bases anyway. Computed links won't have the appropriate link properties.
This is trouble because the generated migration shouldn't be valid or generated.


Add an 'Object' type as input type

Hi I discovered this library 2 days ago and it's really cool and easy to handle.
I was trying to write something like this:
mutation DoAction($datatypeUid: String!, $action: String!, $args: Object) {

before to find out that the Object type doesnt exist.
I would like to map it with the array php type such as:
/**
 * @Mutation
 * @param string $datatypeUid
 * @param string $action
 * @param array $args
 * @return DataGql[]
 */
public function doAction(string $datatypeUid, string $action, ?string $args): array

Do you have a suggestion to bypass this issue or may you consider to add this new type ?

Hey @blixit
The whole point of GraphQL is to have types. And adding a loosely typed "object" type goes against this idea. Believe my experience, it is almost always a bad idea, and you should instead try to create real objects.
If you still want to persist in this direction though, there are 2 strategies:

you can encode/decode your object in a JSON string
or you can try to develop a custom scalar type, like the one developed in this package https://github.com/thecodingmachine/graphqlite-misc-types

But before you start doing this, make sure there is no other way you can do this.


Add ReshapeMatMulReshape

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

Comparison is base (7d10b95) 70.54% compared to head (a715fc4) 70.64%.

Files
Patch %
Lines

...ntal_experiment/torch_exp/optimization_patterns.py
86.04%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #39      +/-   ##
==========================================
+ Coverage   70.54%   70.64%   +0.10%
==========================================
  Files          37       37
  Lines        4825     4862      +37
==========================================
+ Hits         3404     3435      +31
- Misses       1421     1427       +6

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


Use wholegraph to store edge features.

Currently, GraphStorm WholeGraph only use wholegraph to store node features. We should also use wholegraph to store edge features.

Same as #555


Link to docker troubleshooting guide does not exists

Documentation feedback

Page title: Run on Docker
Page URL: https://crate.io/docs/crate/tutorials/en/latest/install-run/docker.html
Source: https://github.com/crate/crate-tutorials/blob/master/docs/install-run/docker.rst

Dear Alex,
thank you for reporting this. We just fixed a whole bunch of broken links on behalf of #45. I believe the broken link you've reported was amongst them and should now be working again.
With kind regards,
Andreas.


flask_restful (0.3.8) in requirements.txt causes error

DO NOT USE THIS FORM TO REPORT THAT A PARTICULAR WEBSITE IS NOT SCRAPING/WATCHING AS EXPECTED
This form is only for direct bugs and feature requests todo directly with the software.
Please report watched websites (full URL and any settings) that do not work with changedetection.io as expected IN THE DISCUSSION FORUMS or your report will be deleted
CONSIDER TAKING OUT A SUBSCRIPTION FOR A SMALL PRICE PER MONTH, YOU GET THE BENEFIT OF USING OUR PAID PROXIES AND FURTHERING THE DEVELOPMENT OF CHANGEDETECTION.IO
THANK YOU
Describe the bug
A clear and concise description of what the bug is.
Rınning  changedetection.py causes error
ImportError: cannot import name '_endpoint_from_view_func' from 'flask.helpers'
Version
0.40.2
To Reproduce

Download zip from release page
extract to C:\somefolder
run cmd or powershell
pip3 install -r .\requirements.txt
python changedetection.py -p 5000 -d C:\somefolder
See error

Traceback (most recent call last):
File "C:\somefolder\changedetection.py", line 8, in
from changedetectionio import changedetection
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\changedetectionio_init_.py", line 9, in
from flask_restful import abort, Api
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\flask_restful_init_.py", line 14, in
from flask.helpers import _endpoint_from_view_func
ImportError: cannot import name '_endpoint_from_view_func' from 'flask.helpers' (C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\flask\helpers.py)
! ALWAYS INCLUDE AN EXAMPLE URL WHERE IT IS POSSIBLE TO RE-CREATE THE ISSUE - USE THE 'SHARE WATCH' FEATURE AND PASTE IN THE SHARE-LINK!
Expected behavior
I expect a run as described
Desktop (please complete the following information):

OS: Windows 10 w python 3.10

Additional context
This issue is the same as described in this page:
https://stackoverflow.com/questions/67496857/cannot-import-name-endpoint-from-view-func-from-flask-helpers-in-python
To change the requirement flask_restful on line 6 with flask_restful>0.3.8 solves the issue.
I dont know why flask_restful v0.3.8 is installed by existing requirements file.
Maybe this issue is about my python installation.
I just want to give information, thanks.

hmm yeah unsure, will wait to see if others report it
interestingly, that project is quite unmaintained

pip3 install -r .\requirements.txt -U ? try an upgrade

pip3 install -r .\requirements.txt -U ? try an upgrade

yes, this command updates already installed packages without any version requirement or an upper version limit in requirements.txt.
I tried it, can potentially fix issue
Also adding changedetection.io package name to requirements.txt could shorten any install and update process
Maybe adding flask_restful>=0.3.9 to requirements.txt and change the install command on Microsoft Windows procedure will be fine.
Thanks for the effort

this is very strange tho,

Also adding changedetection.io package name to requirements.txt could shorten any install and update process

how exactly?


mezzanine_events migrations not working after multilanguage activated.

Hi all!
I have a project that upgrade with the last version of mezzanine to include multilanguage support. I modified /registration/models.py in order to run this version of mezzanine. I also create mezzanine_events/translation.py:
from modeltranslation.translator import translator, TranslationOptions
from .models import Event, EventContainer
class TranslatedEvent(TranslationOptions):
fields = ('rsvp',)
class TranslatedEventContainer(TranslationOptions):
fields = ()
translator.register(Event, TranslatedEvent)
translator.register(EventContainer, TranslatedEventContainer)
The properties was traslated but I got a error when run:
python manage.py migrate
The error:
Running migrations:
Applying blog.0002_auto_20150422_1237...Traceback (most recent call last):
File "./manage.py", line 28, in
execute_from_command_line(sys.argv)
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/core/management/init.py", line 385, in execute_from_command_line
utility.execute()
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/core/management/init.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.dict)
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 160, in handle
executor.migrate(targets, plan, fake=options.get("fake", False))
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 63, in migrate
self.apply_migration(migration, fake=fake)
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 91, in apply_migration
if self.detect_soft_applied(migration):
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 135, in detect_soft_applied
apps = project_state.render()
File "/home/vdelaluz/virtualenvs/sciesmex/local/lib/python2.7/site-packages/django/db/migrations/state.py", line 71, in render
raise InvalidBasesError("Cannot resolve bases for %r\nThis can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)\n in an app with no migrations; see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more" % new_unrendered_models)
django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [<ModelState: 'mezzanine_events.Event'>, <ModelState: 'mezzanine_events.EventContainer'>]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
in an app with no migrations; see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more
django-admin --version
1.7.1

No idea. Really doesn't look like something in Mezzanine's code - I'd suggest opening an issue on modeltranslation and/or events. You could also post this to the mailing list where someone might be able to give some advice.

Thank you!
I think that modeltranslation in mezzanine needs a lot of work to become stable.

Some random thoughts at first glance:

are you models subclasses of Page or RichTextPage? and did you try using mezzanine.pages.translation.TranslatedPage or mezzanine.pages.translation.TranslatedRichTextPage instead of modeltranslation.translation.TranslationOptions?
did try to create a migration file for your translation fields and your app containing the Event model? See http://mezzanine.jupo.org/docs/model-customization.html#field-injection-caveats for a rough idea on the way to do it. Extra help might be found at https://github.com/deschler/django-modeltranslation/issues/106 or http://south.readthedocs.org/en/latest/customfields.html#example

I’ll try to dig into it soon and provide a better answer than that.


Split archives by volumes

Why is this feature a useful, necessary, and/or important addition to this project?
Hello! Is it possible to split some archives by volumes?

What do you mean by that? "Volumes" = storage devices?

I mean splitting archive by files with size limit. Like it makes tar, for example:
tar -c -L1G

Well, this isn't a CLI utility, so to split by size, you can just call the functions and pass in only the files that should go into each archive. Maybe https://github.com/jm33-m0/arc could do it!


GH-35901: [C++][Python] pyarrow.csv.write_csv crashes when writing tables containing FixedSizeBinaryArray

Rationale for this change
This PR fixes an already filed issue which has been evaluated as a bug.
What changes are included in this PR?
This PR includes a minor change to a the logic in scalar_cast_string.cc.
Are these changes tested?
I have added a Python test to evaluate the user's issue and replicated the bug.
And the test case I have added test it parametricly. Also I tested existing C++
tets.
Are there any user-facing changes?
Issue filed by a user: https://github.com/apache/arrow/issues/35901

Closes: #35901

Hm, now the Python 3.9 build is passing and 3.8 is failing. I am creating 3.9 env locally to see what I can find, hope to stop the suggest change-commit spam =)

I have found out the cause for the random flakey failures in the CI.
The code in the tests is generating a numpy array with random strings of length 4. They can also include the string "NULL" which currently gets converted to None.

Reproducible example
import pyarrow as pa
import numpy as np
import os
from pyarrow.csv import (read_csv, write_csv,
                         ConvertOptions, ParseOptions,
                         ReadOptions, WriteOptions)

file_name = "fixedsize_NULL"
nparr = np.array([b'NULL'])
fixed_arr = pa.array(nparr, pa.binary(4))
fixed_table = pa.Table.from_arrays([fixed_arr], names=['fixedsize'])

write_options = WriteOptions(include_header=True, batch_size=2048,
                                delimiter='|')
write_csv(fixed_table, file_name, write_options=write_options)

assert os.path.exists(file_name)

parse_options = ParseOptions(delimiter="|")
convert_options = ConvertOptions(column_types={"fixedsize": pa.binary(4)})
read_options = ReadOptions(block_size=2048)

res_table = read_csv(file_name, parse_options=parse_options,
                        convert_options=convert_options,
                        read_options=read_options)

>>> nparr
array([b'NULL'], dtype='|S4')
>>> fixed_table
pyarrow.Table
fixedsize: fixed_size_binary[4]
----
fixedsize: [[4E554C4C]]
>>> res_table
pyarrow.Table
fixedsize: fixed_size_binary[4]
----
fixedsize: [[null]]

We should use convert_options = ConvertOptions(column_types={"fixedsize": pa.binary(4)}, quoted_strings_can_be_null=False) so that "NULL" is not converted to None.
Will add the change via suggestions.

I have found out the cause for the random flakey failures in the CI.
The code in the tests is generating a numpy array with random strings of length 4. They can also include the string "NULL" which currently gets converted to None.
Reproducible example
We should use convert_options = ConvertOptions(column_types={"fixedsize": pa.binary(4)}, quoted_strings_can_be_null=False) so that "NULL" is not converted to None.
Will add the change via suggestions.

Oh Wow! Awesome catch @AlenkaF :pray:
Thanks for working on this one.

I wasn't able to get the right indent though so I expect, at least, the linter error 😬 😁

Please explicitly describe the rationale in the PR description. "This PR fixes an already filed issue which has been evaluated as a bug" is not an appropriate description.

Please explicitly describe the rationale in the PR description. "This PR fixes an already filed issue which has been evaluated as a bug" is not an appropriate description.

@pitrou I updated the description. Is the updated description helpful?


Plumb plain-http flag through

Signed-off-by: Scott Buckfelder<EMAIL_ADDRESS>As part of simplifying the learning process we want to enable registries without TLS certification to be used.  containerd does this via a --plain-http flag.  The soci cli does not have this plumbed through yet.  Currently when we try to use the --plain-http flag it simply ignores it :
sudo ./soci push --plain-http localhost:5000/test
soci: error pushing graph to remote: Head "https://localhost:5000/v2/test/manifests/sha256:b6281c9d2502217f8b1c879737ba766429af3fb020aa9f9ffa89f80002d537aa": http: server gave HTTP response to HTTPS client

This change passes the flag through to the oras repo object.
Afterwards we see that the plain-http call works
sudo ./soci push --plain-http localhost:5000/test
skipped artifact with digest: sha256:f29312a3a32fe06760178a356f8ddaa59cd7d65b29ea097b59852f42599fd673
skipped artifact with digest: sha256:7a3882c7c443c949582709e076210af6aeaaf47c5f375acc3a52e79c5116786e
skipped artifact with digest: sha256:f466106a549093a1dd41089b087f8b36fa776cdf48726ffc7afb154687c31c3a
skipped artifact with digest: sha256:34141c90431ec6e26925f961c2c5f3ce6c1f2ea47d6c6ff2fb586ed08fcb83c7
skipped artifact with digest: sha256:5e93439bf1df1e2544595c1d672664aff49150eab5867fefd27b1d466266932b
skipped artifact with digest: sha256:5fe3aaf813b29dd7bd4c8cdb27716e68d1d673e8c51055ba07fd0b52152490b2
skipped artifact with digest: sha256:6b612357f7d02e15b7beddf606ac868a9f0d288d75a7fd9a859c7f6e674d599d
skipped artifact with digest: sha256:c26190118089ca3976454047a19e3a316439edbd4d6b346efbc11a1f1c49c64b
skipped artifact with digest: sha256:f6061ac53c34f215066f271e37874cb9c023ed6e21caeed9d4926c32222978d4
skipped artifact with digest: sha256:d47bcc06ee48f65556022e3b640bc76ceb372203ac876ff67598298b967b2fce
pushing artifact with digest: sha256:b6281c9d2502217f8b1c879737ba766429af3fb020aa9f9ffa89f80002d537aa
soci: error pushing graph to remote: PUT "http://localhost:5000/v2/test/manifests/sha256:b6281c9d2502217f8b1c879737ba766429af3fb020aa9f9ffa89f80002d537aa": unexpected status code 400: manifest invalid: manifest invalid

NOTE : There is still something going on, but that will be dealt with in a future CR as it does not appear to involve the http vs https issue.
Description of changes:
One liner to just pass the boolean flag into the destination repo.  thanks to @kzys  and @Kern--  for identifying this change.
Testing performed:
Manually tested as per above
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pushed a new rev as gofmt had different thoughts on white space then I did

Rebased


Packaging

Hi Yoel 👋
I forked and edited your package a bit so that it's installable smoothly. I must admit I am not too familiar with setup.cfg and pyproject.toml (I still use the older setup.py), so I am not sure everything holds up to the standards, but it's installable now (tried on Ubuntu and Windows).
I also added a .gitignore file and remove the pycache and stuff.
So far, running the GUIs almost works. Here's what I did:

clone the repo using git clone <insert-repo-url-here>
go into it with cd <insert-repo-name-here>
create a virtual environment with python -m venv .venv
activate that environment, depending on the used OS (e.g. Ubuntu: source .venv/bin/activate). I tried it on Ubuntu and Windows so far
install the package using pip install .
run the 2D interface using python -m adaptfx.Interface_2D (that one means "run the following python module as main program".)

All those steps work fine and the GUI opens. However, when I the enter some values and hit "compute", it crashed with the following error message:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
  File "C:\Users\roman\repos\Adaptive-fractionation\adaptfx\Interface_2D.py", line 241, in compute_plan
    lbl_output.pack()
  File "C:\Program Files\Python310\lib\tkinter\__init__.py", line 2425, in pack_configure
    self.tk.call(
_tkinter.TclError: bad window path name ".!frame6"

Which might have to do with my Tkinter version... or with the OS... or with anything else related to windows and GUIs, I don't know 😅
Best
Roman

Hi Roman
Thanks for your valuable time!
The edits seem to be good :)
Furthermore, I think that I found the problem for the Error message. It should work now

Hi Yoel,
Because you changed the code quite a bit since I originally created this pull request, I updated them. First, I pulled your changes, the I rebased my branch packaging where I had made the commits onto the changes you made and solved the merge conflicts.
Now, you should be able to merge the pull request.
Btw.: The interfaces are running now, but the 2D interface does not output any numbers. But I think it isn't the most up-to-date version anyways, right?
Best,
Roman


fix(api): fix calibration issues in backcompat

There were a couple different issues with pre-protocol labware calibration for the backcompat shim (even on top of getting locations correctly):

We need to use the underlying context's hardware manager rather than its hardware instance so we can take advantage of the calibration manager connecting to actual hardware (otherwise we won't move anywhere)
We need to patch the underlying labware object's well builder to build legacy wells or a lot of the advanced constructors will return labware.Well, which doesn't work with the back compat wrapper motion control
We need to home plungers at some point before calibration. This may actually be a v2 bug in general, it was causing hard stop errors the first time you go to pick up a tip after boot in calibration
For some reason we were defaulting the tip pickup increment to 1.0mm in both v2 and the backcompat wrapper which is... odd. I don't know when this got introduced but it's very wrong

I uploaded this protocol to v1 server and it simulated successfully, and it raises an error in back-compat (it is a poorly formed protocol, as I should have specified new_tip='never' in the transfer arguments, but I did want to note the difference):
from opentrons import robot, labware, instruments

tr = labware.load('opentrons_96_tiprack_300ul', '1')
plate = labware.load('nest_96_wellplate_100ul_pcr_full_skirt', '2')

p = instruments.P300_Single(mount='left', tip_racks=[tr])

p.pick_up_tip()
p.transfer(30, plate['A1'], plate['A2'])
p.return_tip()

Tested, calibration is performing as expected


Update Composer dependencies (2022-02-22-00-04)

Visual regression test passed!
View the visual regression test report


Add IRC URLs to URL scheme filter

IRC is a protocol popular among open source software developers for instant chat. There is a standard URL scheme for IRC that allows users to join channels and chat to the relevant people quickly. This pull request adds these URLs to the URL scheme filter.
Not included in this pull request is support for magnet links. I would appreciate it if you'd consider adding these as well, for the sake of distributing my bittorrent client.

I'd be interested in having ftp links render on github.com, and was surprised they don't. What's especially bad is that the link is silently disregarded. If they won't be turned into links, at least show the original Markdown text in full.

@agarwal that's good feedback, I'll pass it along. The sanitization filter is what's stripping the link.
If anyone runs into this issue and has a markup related feature request, please write in to<EMAIL_ADDRESS>It'll be easier for us to track from there. Thanks!

Apologies for not posting here originally instead of opening #191; I did not check closed issues because I couldn't conceive that a change like this was rejected.
There is nothing inherently more dangerous about an irc:// URL than any other URL other than that there is another application involved.  Clearly involving another application is not a worry, since mailto:// links are supported already.  So that cannot be a reason for rejection.
Furthermore, the UI for handling irc:// links when an appropriate application is not installed is totally on point: either it will tell you that the link cannot be opened, or it will prompt you to install an appropriate application.  I can't think of anything that would be better as an interface than this.  Then that is not an issue either.
Additionally, all of the above applies for ftp:// links as well, as @agarwal pointed out; in nearly all cases, the ftp:// link will open in the same browser that was used to go to the github page, so it's no more "dangerous" than an http:// link.
IRC has been a huge part of communication - support especially - within open source projects, and so it seems counterintuitive that github seems to want to block access to this.  Seriously, Freenode routinely hits 80,000 users and is almost exclusively open source related.  It makes no sense to me that Github wants to block access to this community.

At this point it's fair to say that they don't care, @frozencemetery.

@frozencemetery It's been two years, it's unlikely at this point that they'll change their mind on this issue regardless of how trivial it is.

@SirCmpwn : Opera supported opening irc links directly in the browser by opening a new tab.

That's not useful or relevant.

I just came across this as well and was surprised ftp:// links weren't being recognized/rendered properly.
What's the reasoning behind the additional logic in the link pattern that actually prevents some protocols from being used?
(It seems some people believe there's a security risk here. I'd like to stress that in general it'd be very hard to find empirical evidence for a protocol to link to that is more dangerous than http. So if you're already allowing http, ftp/irc/whatever are no brainers...)


Fixed some typos.

Thanks for the PR – many of these changes are stylistic, and we try to leave style up to the individual writing the post. So I'll let @orta step in an pick the changes that suit his style. Thanks again! :cake:

Thanks a lot @regexident - I've just merged in your changes SOOOOOORRRRY that it took me so long, I think I saw this and skipped it and never came back. I appreciate your time. Thanks.

No problem! :smile_cat:


api docs: Document /static/generated/emoji/name_to_codepoint.json (maybe add to /register?)

The server counterpart to zulip/zulip-mobile#2956.
I don't think it matters much where this ends up being provided (in its current location, or in /register, /server_settings, or somewhere else), because the data doesn't frequently change. I do think /register would be more convenient for mobile than the current location, since we have existing codepaths for gathering data from there.
The important thing is that we'd like to start consuming it (probably around the time of each /register), and that means we'd like to arrange not to be surprised by breaking changes. 🙂 So it would be good to document this as a feature of the server API.
Discussion at https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/Emoji.20sync/near/1322627

/static/generated is an implementation detail that we reserve the right to change. /static/generated/emoji/name_to_codepoint.json doesn’t even exist in the current version (#13831). On servers where it’s being served, it’s just a stale file left over from previous deployments.
If zulip-mobile needs this data, we need to design a proper API for it.

Ah. Might it be suitable to put in the /register response in some form?

CZO discussion here: https://chat.zulip.org/#narrow/stream/378-api-design

@evykassirer has a PR implementing this here: #22067
(Oddly GitHub isn't showing a backlink to there from this issue thread, after I mentioned the issue on the PR thread: https://github.com/zulip/zulip/pull/22067#pullrequestreview-1020793631 I think that's a GitHub issue I haven't seen before. Perhaps an outage somewhere?)


[AUDIT][SPARK-43302][SQL] Make Python UDAF an AggregateFunction

The PR introduces a new PythonUDAF expression, extending AggregateFunction, to handle PythonUDFs as normal aggregate functions. This change affects APIs of pandas related execs such as AggregateInPandasExec, WindowInPandasExec.
Apache Commit - apache/spark@b496edb

Testing scope: verify fallback to CPU happens.


fixed predicate with substitution variables

It should be possible to retrieve NSManagedObjects by identification attributes specified in a related object.
To do so, the identification attributes have to be in the format relation.attributeName.
Although, this doesn't work with the current implementation of RKFetchRequestManagedObjectCache because the predicateWithSubstitutionVariables method fails in replace constants placeholders that contain a dot ..
@segiddins this should be easy to merge

👍 feel free to merge once CI runs

CI is broken on dev, trying to see if I can fix it

@segiddins PR is fine but CI is kind of broken, can you please help? it hasn't been working for a month

@valeriomazzeo I don't know when I'll have time but I can try?

looks to me some tests are failing on a the new version of OS X el capitan (truthy vs true), and one of those hang making the build fail.

I will merge this, then we will have to create a new PR for fixing the CI integration


Set content of resources to sensitive

Not sure if you'll want this or not. I am using this for secrets and wanted to avoid having them (albeit base64encoded) show up in my terminal every time I changed them. Another option here could be to create a second resource type called something like k8s_manifest_sensitive that marks the input as sensitive. Up to you! I'll be happy to make that change if you want it.
Thanks for this provider, it has been a lifesaver.

Thanks! Should we detect if the kind is a Secret before setting them to sensitive?

Ah this isn't conditional. Well lgtm regardless.


Fix generation for literal styles with non-identifier keys

The previous logic seemed to break the styles, if you tried to create a literal style that would try to bind a value that wasn't translatable to a t.identifier type in Babel. Consider a case, where:
const Root = zacs.view(style.root, null, { background: '--bg-color' })
<Root background="white" />

would be turned into something like this:
const generatedStyle = {
  // Oops...
  --bg-color: "white"
}

This resulted in an error thrown, if the platform was set to native.

@radex any chance you'll have a peek here anytime soon?

ok, i'll do my best to take a look today

solid & straightforward fix :) Sorry it took me so long to take a look at it!


📎 Implement useParseIntRadix - eslint/radix

Description
Implement eslint/radix.
Want to contribute? Lets you know you are interested! We will assign you to the issue to prevent several people to work on the same issue. Don't worry, we can unassign you later if you are no longer interested in the issue! Read our contributing guide and analyzer contributing guide.
The implementer could take some inspirations from the implementation of existing rules such as  useNumberToFixedDigitsArgument.
Sugggested names: useParseIntRadix or useParseIntRadixArgument.

Hey, I want to contribute. Can you give the location where to put the files.

See this: https://github.com/biomejs/biome/blob/main/crates/biome_analyze/CONTRIBUTING.md
I'll go ahead and assign you.

@abhishekpaturkar
Any update?

I am interested. Can you assign me this issue?

Assigned ;)

Hi, since there hasn't been an update in a couple of weeks, I have taken a stab at it: https://github.com/Jantje19/biome

@Jantje19 You will need to make a PR against this repo.


Fixed LookupError at animation

Pull Request Template
Description
Please check branch named: ranjeet
The code encountered a LookupError related to the NLTK library while running, specifically involving modules such as "averaged_perceptron_tagger," "wordnet," and "omw-1.4." To address this issue and ensure the project runs smoothly, I have made the following changes:
Changes I Made

Added an nltk_dir variable to settings.py to specify the directory where NLTK data is located.
Included the necessary NLTK modules in the project settings to resolve the LookupError.

Context
The LookupError was occurring when the code attempted to access NLTK modules that were not properly configured. By adding the nltk_dir variable and specifying the required modules, I have successfully resolved this issue. Now the project is running without any problems.
Please review these changes and merge them into the main branch if they meet the project's requirements. If you have any questions or need further clarification, feel free to ask.

Thanks, @jigargajjar55 , for taking the time to review my changes and for merging my pull request. I'm excited to see them live in the main branch!


[fix #92] order author almost alphabetically

As discussed in #92, it seemed we settled on alphabetical order. This PR implements this.
Ted is first. Jeff is last (in alphabetical order he would be 3rd requiring internal EPA review before submission)

If age is the criteria for "seniority", I may have that...
On Tue, Oct 20, 2015 at 1:18 PM, Francois Michonneau <
<EMAIL_ADDRESS>wrote:

As discussed in #92
https://github.com/emhart/10-simple-rules-data-storage/issues/92, it
seemed we settled on alphabetical order. This PR implements this.
Ted is first. Jeff is last (in alphabetical order he would be 3rd
requiring internal EPA review before submission)
You can view, comment on, or merge this pull request online at:
https://github.com/emhart/10-simple-rules-data-storage/pull/101
Commit Summary

[fix #92] order author almost alphabetically

File Changes

M manuscript/manuscript.md
https://github.com/emhart/10-simple-rules-data-storage/pull/101/files#diff-0
(35)
M manuscript/manuscript.pdf
https://github.com/emhart/10-simple-rules-data-storage/pull/101/files#diff-1
(0)

Patch Links:

https://github.com/emhart/10-simple-rules-data-storage/pull/101.patch
https://github.com/emhart/10-simple-rules-data-storage/pull/101.diff

—
Reply to this email directly or view it on GitHub
https://github.com/emhart/10-simple-rules-data-storage/pull/101.

--
Jeff W. Hollister
email<EMAIL_ADDRESS>google voice:<PHONE_NUMBER>
cell:<PHONE_NUMBER>


adding new sample terrain-exaggeration

Thanks @hardikc07 - I had to make a couple minor changes to some of the gradle files because of some other work I'm doing and just made a couple more minor changes to your branch. Looking good to me. Thanks!

Good to merge and can you also verify @hardikc07?


No stdout stderr

What do these changes do?
Support work without STDOUT and/or STDERR
Are there changes in behavior for the user?
possible to call commands with open_stdout = False and open_stderr = False in cases,
when STDOUT and/or STDERR is not required.
Related issue number
issue: #5
Checklist

[x] I think the code is well written
[x] Unit tests for the changes exist
[x] Documentation reflects the changes

Pull Request Test Coverage Report for Build 54

13 of 13 (100.0%) changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+1.4%) to 98.961%

Files with Coverage Reduction
New Missed Lines
%

exec_helpers/proc_enums.py
1
98.13%

Totals

Change from base Build 53:
1.4%

Covered Lines:
857

Relevant Lines:
866

💛  - Coveralls


[Bug] Menu bar name is not set when a file is loaded [sf#21]

Reported by jdubery on 2003-03-15 13:03 UTC
hi,
When a menubar is first enabled on a frame, it is given a
default name, e.g. MiniTreePadFrame_menubar.
This can be modified, and saved to a wxg file.
When the wxg file is loaded into wxGlade, the menubar's
name is ignored and the default name
MiniTreePadFrame_menubar is again before my eyes.
I suspect that this will not be hard to fix, but not
knowing the architecture of wxGlade it's not easy for me
to work out what's missing, and from where
thanks
John

Commented by agriggio on 2003-03-15 13:45 UTC
Logged In: YES
user_id=375945
Thanks, fixed. As you argued, the fix was really trivial
(and btw statusbars had the same problem). If you are
interested, the changes are on statusbar_xml_builder and
menubar_xml_builder in widgets/frame/frame.py
Alberto


move to sluggification of project_name

To use project_name as id in url, there is a need for sluggification

check when project creation that the name does not match other names slugified with python-slugify