Previously working Action now failing with java.io.IOException: Short read of DER length

Hello,
I have a GitHub action which was working fine for quite some time. Recently I have noticed that signing the app fails sometimes with this exception:
/usr/bin/cp app/build/outputs/apk/develop/release/app-develop-release-unsigned.apk app/build/outputs/apk/develop/release/app-develop-release-unsigned-aligned.apk
/usr/local/lib/android/sdk/build-tools/29.0.3/apksigner sign --ks app/build/outputs/apk/develop/release/signingKey.jks --ks-key-alias  --ks-pass pass: --out app/build/outputs/apk/develop/release/app-develop-release-unsigned-signed.apk app/build/outputs/apk/develop/release/app-develop-release-unsigned-aligned.apk
Failed to load signer "signer #1"
java.io.IOException: Short read of DER length
	at java.base/sun.security.util.DerInputStream.getLength(DerInputStream.java:588)
	at java.base/sun.security.util.DerValue.init(DerValue.java:390)
	at java.base/sun.security.util.DerValue.<init>(DerValue.java:331)
	at java.base/sun.security.util.DerValue.<init>(DerValue.java:344)
	at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1[996](https://github.com/yuriykulikov/AlarmClock/runs/6041863318?check_suite_focus=true#step:6:996))
	at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222)
	at java.base/java.security.KeyStore.load(KeyStore.java:1479)
	at com.android.apksigner.SignerParams.loadKeyStoreFromFile(SignerParams.java:353)
	at com.android.apksigner.SignerParams.loadPrivateKeyAndCertsFromKeyStore(SignerParams.java:239)
	at com.android.apksigner.SignerParams.loadPrivateKeyAndCerts(SignerParams.java:181)
	at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:277)
	at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:83)
Error: The process '/usr/local/lib/android/sdk/build-tools/29.0.3/apksigner' failed with exit code 2

Example run: https://github.com/yuriykulikov/AlarmClock/runs/6041847468?check_suite_focus=true
My configuration is:
      - name: Sign develop APK
        uses: r0adkll/sign-android-release@v1
        # ID used to access action output
        id: sign_develop_app
        with:
          releaseDirectory: app/build/outputs/apk/develop/release
          signingKeyBase64: ${{ secrets.SIGNING_KEY }}
          alias: ${{ secrets.ALIAS }}
          keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
          keyPassword: ${{ secrets.KEY_PASSWORD }}

What could be the problem?

I'm having the same problem. I tried to upgrade the version to 30.0.2, but without success

Check for right secrets in repository - you should add secret with base 64 key

What is the format? Should it be BEGIN/END PGP MESSAGE or BEGIN/END CERTIFICATE? Can this occur with an incorrect password?


RHOAIENG-15549: Addressing peer feedback

Description
Addressing peer review feedback
How Has This Been Tested?
Local build

LGTM


feat: update bindgen for dojo.js sdk

Description
this is a draft I've left out code comments in code that will be removed afterward.
Revamping bindgen to make it more modular and more extandable.
We can discuss on BindgenGenerator which may evolve.
I think this could be a great base to work. After finishing update for --typescript I will add a --recs to add retro compatibility.
Tests

[x] Yes
[ ] No, because they aren't needed
[ ] No, because I need help

Added to documentation?
In code itself, as this is a very specific part of software. Might add a README to guide developper through creation of new plugins like godot for instance

[ ] README.md
[ ] Dojo Book
[ ] No documentation needed

Checklist

[ ] I've formatted my code (scripts/prettier.sh, scripts/rust_fmt.sh, scripts/cairo_fmt.sh)
[ ] I've linted my code (scripts/clippy.sh, scripts/docs.sh)
[x] I've commented my code
[ ] I've requested a review after addressing the comments

Summary by CodeRabbit

New Features

Introduced TypescriptRecsPlugin for enhanced TypeScript code generation from Dojo models and contracts.
Added support for generating TypeScript enums, interfaces, functions, and schemas through new generator structures.
Modularized code generation process with multiple writers for improved extensibility.

Bug Fixes

Updated tests to ensure compatibility with the new TypescriptRecsPlugin.

Documentation

Added comprehensive test modules for new generator functionalities.

Refactor

Improved structure of TypescriptPlugin for better code generation handling and maintainability.

Generated components should also include the new Torii indexed ERC20/ERC721 models, so they can be synched by the  Torii client, implemented on #2494
These are the models, from graphQL schema:
type ERC__Balance {
  balance: String!
  type: String!
  tokenMetadata: ERC__Token!
}

type ERC__Token {
  name: String!
  symbol: String!
  tokenId: String!
  decimals: String!
  contractAddress: String!
}

type ERC__Transfer {
  from: String!
  to: String!
  amount: String!
  type: String!
  executedAt: String!
  tokenMetadata: ERC__Token!
  transactionHash: String!
}

@MartianGreed, generated components should also include the new Torii indexed ERC20/ERC721 models, so they can be synched by the  Torii client, implemented on #2494
These are the models, from graphQL schema:
type ERC__Balance {
  balance: String!
  type: String!
  tokenMetadata: ERC__Token!
}

type ERC__Token {
  name: String!
  symbol: String!
  tokenId: String!
  decimals: String!
  contractAddress: String!
}

type ERC__Transfer {
  from: String!
  to: String!
  amount: String!
  type: String!
  executedAt: String!
  tokenMetadata: ERC__Token!
  transactionHash: String!
}

@rsodre do you want to query those models over grpc or over graphql ? Or maybe both ?

those are already available on GraphQL, example here.
I'm asking to have them sync with grpc too.

@MartianGreed will get back to it shortly and let a review. Thanks for your patience. 🙏


Controller hooks for modifying relationships should receive the relation value

As per this issue:
https://github.com/cloudcreativity/laravel-json-api/issues/264
The controller hooks for modifying a relation should receive the relation value. We can use the LazyRelation value here, just like the authorizers.
The LazyRelation class actually caches its value internally for a to-many relation. We should add caching of the to-one relation as well. Then we should keep the instance on the request, so that the same instance is used for both the authorization and the controller hooks: meaning there would only be one database request if the relation is accessed in both the authorization code and the controller hook.

Actually don't think I want to make any changes at this stage. The second hook (after the relationship is updated) has access to the models that replaced, added-to or removed-from the relation. The main issue with providing them to the before hook is that the records aren't materialized at that point.
I would need a really good use-case to make changes, as the whole point with the current set up is that the JSON:API identifiers are passed down to the repository, which takes care of resolving them and modifying the relationship. It feels like use-case would be solved by using the after hook.


Error encountered when applying sub-sampled weights into training

Hi! Before I write the issue, I really appreciate your work and sharing.
What I did was,

I sub-sampled weights for binary detection (crack, or background)
and applied it into ssd training

but I encountered the error
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-36-c46a8478eff2> in <module>()
     24 weights_path = weights_destination_path
     25
---> 26 model.load_weights(weights_path, by_name=True)
     27
     28 # 3: Instantiate an optimizer and the SSD loss function and compile the model.

c:\users\user\anaconda2\envs\tensorflow-gpu\lib\site-packages\keras\engine\network.py in load_weights(self, filepath, by_name, skip_mismatch, reshape)
   1175                 saving.load_weights_from_hdf5_group_by_name(
   1176                     f, self.layers, skip_mismatch=skip_mismatch,
-> 1177                     reshape=reshape)
   1178             else:
   1179                 saving.load_weights_from_hdf5_group(

c:\users\user\anaconda2\envs\tensorflow-gpu\lib\site-packages\keras\engine\saving.py in load_weights_from_hdf5_group_by_name(f, layers, skip_mismatch, reshape)
   1016                                          ' has shape {}'.format(K.int_shape(symbolic_weights[i])) +
   1017                                          ', but the saved weight has shape ' +
-> 1018                                          str(weight_values[i].shape) + '.')
   1019                 else:
   1020                     weight_value_tuples.append((symbolic_weights[i],

ValueError: Layer #25 (named "conv4_3_norm_mbox_conf"), weight <tf.Variable 'conv4_3_norm_mbox_conf/kernel:0' shape=(3, 3, 512, 324) dtype=float32_ref> has shape (3, 3, 512, 324), but the saved weight has shape (8, 512, 3, 3).

but I got this result already before.
Shape of the 'conv4_3_norm_mbox_conf' weights:

kernel:	 (3, 3, 512, 8)
bias:	 (8,)

Here conv4_3_norm_mbox_conf is (3, 3, 512, 8), but after that it became (3, 3, 512, 324), so I don't know why it happened.
When I followed exactly the code at "weight sampling example" file, it worked, but when I applied that logic into my training code, error happened.
I'll attach my full code below.
import h5py
import numpy as np
import shutil

from misc_utils.tensor_sampling_utils import sample_tensors

# TODO: Set the path for the source weights file you want to load.
weights_source_path = 'C:\\Users\\user\\Desktop\\weight\\VGG_coco_SSD_300x300_iter_400000.h5'

# TODO: Set the path and name for the destination weights file
#       that you want to create.

weights_destination_path = 'C:\\Users\\user\\Desktop\\weight\\VGG_coco_SSD_300x300_iter_400000_subsampled_2_classes.h5'

# Make a copy of the weights file.
shutil.copy(weights_source_path, weights_destination_path)

# Load both the source weights file and the copy we made.
# We will load the original weights file in read-only mode so that we can't mess up anything.
weights_source_file = h5py.File(weights_source_path, 'r')
weights_destination_file = h5py.File(weights_destination_path)

classifier_names = ['conv4_3_norm_mbox_conf',
                    'fc7_mbox_conf',
                    'conv6_2_mbox_conf',
                    'conv7_2_mbox_conf',
                    'conv8_2_mbox_conf',
                    'conv9_2_mbox_conf']

conv4_3_norm_mbox_conf_kernel = weights_destination_file[classifier_names[0]][classifier_names[0]]['kernel:0']
conv4_3_norm_mbox_conf_bias = weights_destination_file[classifier_names[0]][classifier_names[0]]['bias:0']

print("Shape of the '{}' weights:".format(classifier_names[0]))
print()
print("kernel:\t", conv4_3_norm_mbox_conf_kernel.shape)
print("bias:\t", conv4_3_norm_mbox_conf_bias.shape)

# TODO: Set the number of classes in the source weights file. Note that this number must include
#       the background class, so for MS COCO's 80 classes, this must be 80 + 1 = 81.
n_classes_source = 81
# TODO: Set the indices of the classes that you want to pick for the sub-sampled weight tensors.
#       In case you would like to just randomly sample a certain number of classes, you can just set
#       `classes_of_interest` to an integer instead of the list below. Either way, don't forget to
#       include the background class. That is, if you set an integer, and you want `n` positive classes,
#       then you must set `classes_of_interest = n + 1`.
# class 구분은 crack or background이므로 총 2개임
classes_of_interest = 2

# classes_of_interest = 9 # Uncomment this in case you want to just randomly sub-sample the last axis instead of providing a list of indices.

for name in classifier_names:
    # Get the trained weights for this layer from the source HDF5 weights file.
    kernel = weights_source_file[name][name]['kernel:0'].value
    bias = weights_source_file[name][name]['bias:0'].value

    # Get the shape of the kernel. We're interested in sub-sampling
    # the last dimension, 'o'.
    height, width, in_channels, out_channels = kernel.shape

    # Compute the indices of the elements we want to sub-sample.
    # Keep in mind that each classification predictor layer predicts multiple
    # bounding boxes for every spatial location, so we want to sub-sample
    # the relevant classes for each of these boxes.
    if isinstance(classes_of_interest, (list, tuple)):
        subsampling_indices = []
        for i in range(int(out_channels/n_classes_source)):
            indices = np.array(classes_of_interest) + i * n_classes_source
            subsampling_indices.append(indices)
        subsampling_indices = list(np.concatenate(subsampling_indices))
    elif isinstance(classes_of_interest, int):
        subsampling_indices = int(classes_of_interest * (out_channels/n_classes_source))
    else:
        raise ValueError("`classes_of_interest` must be either an integer or a list/tuple.")

    # Sub-sample the kernel and bias.
    # The `sample_tensors()` function used below provides extensive
    # documentation, so don't hesitate to read it if you want to know
    # what exactly is going on here.
    new_kernel, new_bias = sample_tensors(weights_list=[kernel, bias],
                                          sampling_instructions=[height, width, in_channels, subsampling_indices],
                                          axes=[[3]], # The one bias dimension corresponds to the last kernel dimension.
                                          init=['gaussian', 'zeros'],
                                          mean=0.0,
                                          stddev=0.005)

    # Delete the old weights from the destination file.
    del weights_destination_file[name][name]['kernel:0']
    del weights_destination_file[name][name]['bias:0']
    # Create new datasets for the sub-sampled weights.
    weights_destination_file[name][name].create_dataset(name='kernel:0', data=new_kernel)
    weights_destination_file[name][name].create_dataset(name='bias:0', data=new_bias)

# Make sure all data is written to our output file before this sub-routine exits.
weights_destination_file.flush()

from keras.optimizers import Adam, SGD
from keras.callbacks import ModelCheckpoint, LearningRateScheduler, TerminateOnNaN, CSVLogger
from keras import backend as K
from keras.models import load_model
from math import ceil
import numpy as np
from matplotlib import pyplot as plt

from models.keras_ssd300 import ssd_300
from keras_loss_function.keras_ssd_loss import SSDLoss
from keras_layers.keras_layer_AnchorBoxes import AnchorBoxes
from keras_layers.keras_layer_DecodeDetections import DecodeDetections
from keras_layers.keras_layer_DecodeDetectionsFast import DecodeDetectionsFast
from keras_layers.keras_layer_L2Normalization import L2Normalization

from ssd_encoder_decoder.ssd_input_encoder import SSDInputEncoder
from ssd_encoder_decoder.ssd_output_decoder import decode_detections, decode_detections_fast

from data_generator.object_detection_2d_data_generator import DataGenerator
from data_generator.object_detection_2d_geometric_ops import Resize
from data_generator.object_detection_2d_photometric_ops import ConvertTo3Channels
from data_generator.data_augmentation_chain_original_ssd import SSDDataAugmentation
from data_generator.object_detection_2d_misc_utils import apply_inverse_transforms

%matplotlib inline

img_height = 300 # Height of the model input images
img_width = 300 # Width of the model input images
img_channels = 3 # Number of color channels of the model input images
mean_color = [123, 117, 104] # The per-channel mean of the images in the dataset. Do not change this value if you're using any of the pre-trained weights.
swap_channels = [2, 1, 0] # The color channel order in the original SSD is BGR, so we'll have the model reverse the color channel order of the input images.
n_classes = 80 # Number of positive classes, e.g. 20 for Pascal VOC, 80 for MS COCO
scales_pascal = [0.1, 0.2, 0.37, 0.54, 0.71, 0.88, 1.05] # The anchor box scaling factors used in the original SSD300 for the Pascal VOC datasets
scales_coco = [0.07, 0.15, 0.33, 0.51, 0.69, 0.87, 1.05] # The anchor box scaling factors used in the original SSD300 for the MS COCO datasets
scales = scales_pascal
aspect_ratios = [[1.0, 2.0, 0.5],
                 [1.0, 2.0, 0.5, 3.0, 1.0/3.0],
                 [1.0, 2.0, 0.5, 3.0, 1.0/3.0],
                 [1.0, 2.0, 0.5, 3.0, 1.0/3.0],
                 [1.0, 2.0, 0.5],
                 [1.0, 2.0, 0.5]] # The anchor box aspect ratios used in the original SSD300; the order matters
two_boxes_for_ar1 = True
steps = [8, 16, 32, 64, 100, 300] # The space between two adjacent anchor box center points for each predictor layer.
offsets = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5] # The offsets of the first anchor box center points from the top and left borders of the image as a fraction of the step size for each predictor layer.
clip_boxes = False # Whether or not to clip the anchor boxes to lie entirely within the image boundaries
variances = [0.1, 0.1, 0.2, 0.2] # The variances by which the encoded target coordinates are divided as in the original implementation
normalize_coords = True

# 1: Build the Keras model.

K.clear_session() # Clear previous models from memory.

model = ssd_300(image_size=(img_height, img_width, img_channels),
                n_classes=n_classes,
                mode='training',
                l2_regularization=0.0005,
                scales=scales,
                aspect_ratios_per_layer=aspect_ratios,
                two_boxes_for_ar1=two_boxes_for_ar1,
                steps=steps,
                offsets=offsets,
                clip_boxes=clip_boxes,
                variances=variances,
                normalize_coords=normalize_coords,
                subtract_mean=mean_color,
                swap_channels=swap_channels)

# 2: Load some weights into the model.

# TODO: Set the path to the weights you want to load.
# 여기서 내가 이전 단계에서 random sub sampling한 weights를 불러옴
weights_path = weights_destination_path

model.load_weights(weights_path, by_name=True)

# 3: Instantiate an optimizer and the SSD loss function and compile the model.
#    If you want to follow the original Caffe implementation, use the preset SGD
#    optimizer, otherwise I'd recommend the commented-out Adam optimizer.

#adam = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
sgd = SGD(lr=0.001, momentum=0.9, decay=0.0, nesterov=False)

ssd_loss = SSDLoss(neg_pos_ratio=3, alpha=1.0)

model.compile(optimizer=sgd, loss=ssd_loss.compute_loss)

At the end of the code, I encountered the error.
Did I apply sampled weight into my training code in the wrong way?
I'll really appreciate if you can help me.
Thank you very much, in advance.

Windows 10
about implementing ssd300_training.ipynb
Keras 2.2
TensorFlow version 1.9.0

Should I change n_classes = 80 to n_classes = 1? (because I want to classify images into "crack or background")

Yes.

@pierluigiferrari Thank you very much for your help!


when loading with neoforge 1.20.4 it shows errors

Hello, I tried to install the woodwalkers mod with neoforge, but every time it loaded it shows zero errors or something. In any case, you can't get into the menu to start the world. It doesn't crash, but it just loads with errors

Did you install Woodwalkers 1.12 or 1.12.1 and CraftedCore 1.2.3 or 1.3.1?

I fixed is as of the newest dev version of crafted core.


Extending CI with macOS, windows (possibly also rustfmt, auto-publish, clippy suggestions)

I noticed there is already some CI setup for testing on Linux here. I thought it might be worth opening an issue for testing on other platforms and adding some other handy tools to the CI process.
Recently CPAL switched their CI from a combination of travis, appveyor and circle-ci to use Github workflows. I'm still a little new to the way they work, but one nice benefit seems to be that each of the main platforms are supported in one place. You can find CPAL's workflow here where the following jobs are specified:

clippy-test: runs clippy on the repo providing good-practise suggestions to contributors (though addressing each isn't a necessity for landing PRs).
rustfmt-check: checks PRs have been formatted with the current stable rustfmt with default settings.
cargo-publish: automatically publishes new releases of crates within the CPAL repository to crates.io when a PR is merged into master as long as 1. all CI passed successfully and 2. the version in the Cargo.toml has been updated. Something like this might ease the pain-point mentioned here and make it easier to keep the cubeb* crates up to date on crates.io.
ubuntu-test
asmjs-wasm32-test
windows-test
macos-test

I should mention that while it's convenient to have all CI in one place like this, it comes with the downfall of being a little more tied down to Github. Then again, I suppose it is not too tricky to switch to a different service in the case that the repository is moved, and this workflow could be used as a reference assisting in the process.
Would you be interested in a PR that adds a workflow with jobs similar to those above?

CI builds on Linux/macOS/Windows now, with rustfmt and clippy integration.  I'll mark this as done.


Possible error in Client Use/Feathers Client/Socket.io chapter

Possible error in chapter Client Use » Feathers Client » Socket.io:
const feathers = require('feathers/client');
Shouldn’t it be:
const feathers = require('feathers-client');
And is this line correct?
const socketio = require('feathers-socketio/client');

@heymartinadams Each main package includes the node version as the main and the client version at <package>/client.js  The feathers-client package is a convenience package that includes all of the main client libs in one.  So, technically they are all correct.  Check out the readme of feathers-client for reasoning behind this structure: https://github.com/feathersjs/feathers-client.

but  if one loads just the feather-client package this require
const feathers = require('feathers/client');
throws a missing package error.
Since loading separately and the convenience package are NOT equivalent then the examples should indicate which one it works for and what to change if loading the other way.   When it comes to noobs it's not great to suggest something you know will throw an error.
Here is what I suggest although the BEST solution is to make the convenience package work the same way as installing them separately (i.e. both use feathers/client Why doesn't it??)
Module Loaders
The client utilities can be used directly on the server. Just install the feathers-client convenience package.
npm install feathers-client
Note: If you opt to install all the packages separately then use
feathers/client in place of feathers-client
Node and npm loaders
Use require in Nodejs or import in the browser if using webpack, etc
const feathers = require('feathers-client');
const socketio = require('feathers-socketio/client');
const hooks = require('feathers-hooks');
const errors = require('feathers-errors'); // An object with all of the custom error types.
const auth = require('feathers-authentication-client');
const io = require('socket.io-client/dist/socket.io');

const socket = io('http://localhost:3030', {
  transports: ['websocket']
});

const feathersClient = feathers()
  .configure(socketio(socket))
  .configure(hooks())
  .configure(auth())

module.exports = feathersClient;

Browserify, StealJS, and Webpack
...........
change feathers/client to feathers-client below

Since loading separately and the convenience package are NOT equivalent
Why are they not equivalent?

That module should not be missing.  It's right here: https://github.com/feathersjs/feathers/blob/master/client.js
Keep in mind that the lib folder is created as part of the build, so it's not missing from the repo.

I did see the /lib folder as I looked in the install in my node_modules folder and not in the github repo.
Well....actually after looking at feathers-client export why isn't the documentation for NPM like below.  You've exported all these as keys/props in the module why keep requiring just cause the packages are in node_modules as dependencies??
Bottom line (at least to me) the feather-client repo/module and it's proper use is confusing and inconsistent.
I've kinda figured it out the idiosyncracies but a noob will likely be confused or have the same issue as @heymartinadams
Object.assign(_client2.default, {
  socketio: _client6.default,
  primus: _client8.default,
  rest: _client4.default,
  hooks: _feathersHooks2.default,
  authentication: _feathersAuthenticationClient2.default,
  errors: _feathersErrors2.default
});

exports.default = _client2.default;
module.exports = exports['default'];

const feathers = require('feathers-client'),
 socketio = feathers.socketio,
 hooks = feathers.hooks,
 errors = feathers.errors,
 auth = feathers.authentication

const io = require('socket.io-client/dist/socket.io');

const socket = io('http://localhost:3030', {
	transports: ['websocket']
});

const feathersClient = feathers()
  .configure(hooks())
  .configure(socketio(socket))
  .configure(auth())

module.exports = feathersClient;

actually the npm/node portion of the docs is incorrect wrt the socket.io package.
The documented require is for a browser but the non dist is for node.
Should be
X const io = require('socket.io-client/dist/socket.io');
const io = require('socket.io-client');

First gives error
correction works
see
Node.JS (server-side usage)

Add socket.io-client to your package.json and then:

var socket = require('socket.io-client')('http://localhost');
socket.on('connect', function(){});
socket.on('event', function(data){});
socket.on('disconnect', function(){});

from
https://github.com/socketio/socket.io-client
and my stackoverflow question
https://stackoverflow.com/questions/46626831/feathersjs-node-socket-client-not-connecting

So for npm/node example how about this which is more terse and I have confirmed to work
const feathers = require('feathers-client')

const socket = require('socket.io-client')('http://<IP_ADDRESS>:3030', { transports: ['websocket'] })

 const feathersClient = feathers()
   .configure(feathers.hooks())
   .configure(feathers.socketio(socket))
   .configure(feathers.authentication())

module.exports = feathersClient;

That is true indeed, thank you. Not sure how the dist/ reference for the socket.io client slipped in there, it is fixed now. Everything else should work as advertised though.
For the next version this will also become more straightforward (see https://github.com/feathersjs/feathers-client/issues/137). feathers itself will be usable on the client and the server and all client functionality will be in their own respective repositories (e.g. feathers-rest-client, feathers-socketio-client etc.).


Create problems panel (resolves #15)

This PR creates a problems panel below the Editor pane. The panel displays textDocument/publishDiagnostics notification messages from the LspClient.

The panel shows the severity as a number, but this could be converted to a color in a future PR.

@angelosilvestre Thank you. Those were helpful comments. I made updates for all of them except for didUpdateWidget, for which I need I little more help.

@angelosilvestre I believe all of the issues are resolved now.


multi-instance wechaty through metaclass

There are some designs that require us using singleton-instance pattern in wechaty. For example, puppet  is a singleton instance in Room/Contact/Message....  So, If we have multi-bot, we will get into trouble that static attriubute in a specific class can't get the one of the two bot puppet.
bot1 = Wechaty(token="")
bot2 = Wechaty(token="")

At this scene, program will get into trouble. But there are solution: Metaclass.
@huan your accessory_test have complete metaclass concept, we should make detailed code come true.

Yes, the Accessory class is exactly doing this job for us.
Please feel free to add more unit tests to our accessory_test for guarding more cases, or fail it to let us know if there are any new problems.


Service power operations in Service UI

Added the Service Power operations for Start, Stop and Suspend in the Service UI.
The buttons for each of the above operations are displayed per service in the Services list view.
Screenshots

Links
https://www.pivotaltracker.com/n/projects/1613907/stories/127218477
Depends On
https://github.com/ManageIQ/manageiq/pull/11888

@serenamarie125 does this UX meet your approval?

@AparnaKarve Are there associated tests with this?

@chriskacerguis I have added PhantomJS tests here: https://github.com/ManageIQ/manageiq-ui-service/pull/271/commits/2639e1cb6bb673bc895fbb9cd1ca158b6637fcbd

@serenamarie125 does this UX meet your approval?

Thanks for your hard work @AparnaKarve !!!  Good job!

@chriskacerguis Thanks for merging.
As I indicated above it depends on the backend PR ManageIQ/manageiq#11888, which is likely to get merged very soon too.

@AparnaKarve It is easy for a merger to miss the depends on when it is in the description.  It is ok to have it there but it should also be in the title of the PR.  I would think this PR should have also been marked WIP to avoid merging.
Example PR title: [WIP](Depends on #10976) LbaaS specs for service...  (see https://github.com/ManageIQ/manageiq/pull/11061).

@gmcculloug +1 -- a dependent PR really needs to be a WIP until the PR it depends on is merged

Example PR title: [WIP](Depends on #10976) LbaaS specs for service... (see ManageIQ/manageiq#11061).

@gmcculloug Agreed, should have done that.
I'm guessing we'll have to do more of this in the future (being explicit about PR dependencies in the title) once the repos are split.

Euwe Backport details:
$ git log -1
commit 0b0c0e210189da10863097081d5ea577d1626d38
Author: Chris Kacerguis<EMAIL_ADDRESS>Date:   Tue Oct 25 09:59:31 2016 -0500

    Merge pull request #271 from AparnaKarve/service_power_ops

    Service power operations in Service UI
    (cherry picked from commit 903ef4e481883b6197b3a24e3b77a07e479eb3c7)


[flutter_plugin_tools] Split common.dart

common.dart is a large-and-growing file containing all shared code,
which makes it hard to navigate. To make maintenance easier, this splits
the file (and its test file) into separate files for each major
component or category.
All code is moved exacty as-is, with the exception of test fixture setups
being edited down to just the pieces that each test suite uses. By
design, no actual changes are made to any functionality, comments,
etc. so that no actual changes will be masked by the move.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Note that unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[ ] I updated CHANGELOG.md to add a description of the change.
[ ] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Landing on red to trigger a re-run of postsubmit since I believe the docker build error there was flake, and this is both approved and relatively low-risk.


Update

To do afterwards: update protos!

@PokemonGoSucks thanks SO much. I've updated the protos version as well, but it looks like they've changed some integer types. (Lots of UInt64 - Int64, UInt32 - UInt64). I could simply cast the values but I'm not sure that would be valid. Can you check it out? I've pushed the update to the protos-update branch.

Thanks for updating it.
The location hashes can be casted up to UInt64, no problem. But the requestHash:
repeated int64 request_hash = 24;
This will lead to range problems.. It may be a bug in the protos. I'll look into it tomorrow.


refactor(payment): INT-6964 Sunset Amazon Pay V1

What? INT-6964
Remove all of the code related to Amazon Pay V1.
Why?
So that we don’t have to continue maintaining.
Testing / Proof
CircleCI
Dependency of
👉 https://github.com/bigcommerce/checkout-sdk-js/pull/1700
@bigcommerce/checkout

💚 Tested!
QE details:
The task for AmazonPay has been validated without issue.
The following was tested:
• Regression Amazon Pay
Please see the attachment word below with the evidence:
https://drive.google.com/drive/folders/1dilqgH7eA5eFwMljWf9lS39aeR04CH4W?usp=share_link
Please let me know any comment or doubt


Suggested Hardware/GPU Memory for training

Can anybody suggest hardware for training? I got a dataset of about 1000 files, and would like to train with batch size 32.
I tried it with aws instance g4dn.xlarge (1 GPU, 4 vCPUs, 16 GiB of memory, 125 NVMe SSD, up to 25 Gbps network performance) and it seems like that its not enough memory and therefore reduces the performance significantly.
I would appriciate any tips

you can try this. i have tried performance is good.
https://e2enetworks.com
NVIDIA - RTX8000 | 48 GB | Ubuntu - 20.04 | GDC.RTX-16.115GB | CPU 16 | 115 GB | 900 GB

@flexwend did you use something? i just found this project and i am basically swamped. i feel overwhelmed. did you get to use this?  what server did you use and what is the datasize-to-time ratio with regards to listed configs here?
don't we have to generate a training data just once?


i18n(ko-KR): update craft-cms.mdx

Description (required)

update craft-cms.mdx
#9055

Related issues & labels (optional)

Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

ko
guides/cms/craft-cms.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Jetpack ci job for osp13 failing

TASK [fail when compute count is less than 1] **********************************
task path: /home/jetpack/workspace/jetpack-ci-osp13/overcloud.yml:104
fatal: [localhost]: FAILED! => {
"changed": false,
"msg": "Failing as compute count is less than 1"
}
to retry, use: --limit @/home/jetpack/workspace/jetpack-ci-osp13/main.retry
PLAY RECAP *********************************************************************
localhost                  : ok=67   changed=19   unreachable=0    failed=1
undercloud                 : ok=25   changed=12   unreachable=0    failed=0
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Adding one-line test results to commit status...
Setting status of d5d67e2fa74fd25ba94929a54eb951e2cb0a71bb to SUCCESS with url http://tesla.rdu.openstack.engineering.redhat.com:8080/job/jetpack-ci-osp13/57/ and message: 'Deployed
No test results found.'
Using context: osp 13
Finished: SUCCESS

https://github.com/redhat-performance/jetpack/pull/228

The PR is merged, and the Job is up and running.


GEODE-2018: Added instantiators to SessionCachingFilter init method

Also removed unused registerInstantiator methods from GatewayDeltaCreateEvent,
GatewayDeltaDestroyEvent, and DeltaSessionDestroyAttrbiuteEvent classes.
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[x] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[x] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

@ladyVader @nabarunnag @boglesby @jhuynh1 @upthewaterspout @gesterzhou


Closed issues on phly/http

@weierophinney, you answered to my "Unserializing large requests" issue (https://github.com/phly/http/issues/76#issuecomment-104355982), but then issues were closed :-) Can you copy your answer here?
thanks

Answer was simply to say that I like the approach, and to have you post it here. :)


Can't transfer ERC20 UST to Solana

Hi, I don't know why but I have 6 transtactions to approve the transfer (this means more than 60$ total) and also now I can't still finish the transfer itself.
It says:
Lock assets
Waiting for MetaMask transfer approval
Transfer failed!
Etherscan: https://etherscan.io/tx/0xf034a7a16667d2184ca98997aee3943ca0bb3f90da15942039ee9605cacadd55
How can I solve this? There's a way to have all those apporval fees back? I mean only 1 is necessary..

What's the Solana transaction for the transfer?

Don't know how to find the exact one now.. this is my Solana Explorer link: https://explorer.solana.com/address/8wkZPEKuwGBLgryu3rfmEsfi3fE1aHyizwr6M846ymTW
Btw yesterday I solved this problem alone by just inserting manually the value of UST to move.. before this I was just clicking on my max to make it autofill..
But I still don't know why i had to pay more times the approval fee on ETH

But I still don't know why i had to pay more times the approval fee on ETH

Sounds like a bug in the UI - cc @yamijuan / @bartosz-lipinski. You should only need to pay the fee once.

Don't know how to find the exact one now..

Go through the transactions one by one and find the "Wormhole Transfer Out" instruction.

Yeah sound like a UI bug now..
Usually every dapp make me pay once and I can't pay anymore. This time something gone wrong for sure and I had to retry.
Solana transtaction should be this: https://explorer.solana.com/tx/22UA3g6UokgqT1Zig6i7zUujHaYB5ueD4VCMbJGhPF2AT1F1aYRcNA88KKoNpT3LVLebdDpo3Gvw5QfqSNMCetYX

No, this is not a transfer out.

i have the same issues and doesnt look like a solution writen above anyone help please?

@MARKO250851 you need to be more specific

when trying to use solana wormhole bridge to move eth to sol i connect my metamask and phantom wallet however, very quickly with half second comes back,
Lock assets
Waiting for MetaMask transfer approval
Transfer failed!
most occassions says this however sometimes it doesnt even say with prompt approve assets. im getting no where with this and have no idea how to fix, a couple of times its given me the explorer link below, but have no idea what this means if completed or not. also taken small deposits from my wallet , not good at this and have no idea whats going on.
id appreciate your help thanks.https://explorer.solana.com/tx/2jVuB1oqCgkMJxbW15o2VnWFm7JW6We7kHsS3doEbWkLmGe29VQrj9ZY33Hoq1V5BUUN42q2DsvagXZsd9LL9agy


[FLINK-18061] [table] TableResult#collect method should return a closeable iterator to avoid resource leak

What is the purpose of the change
as discussed in ML<EMAIL_ADDRESS>we should return a closeable iterator for TableResult#collect method to avoid resource leak. This pr aims to change the return type of TableResult#collect method from Iterator<Row> to CloseableIterator<Row>
Brief change log

change the return type of TableResult#collect method from Iterator<Row> to CloseableIterator<Row>
CollectResultIterator inherits from CloseableIterator<T>.

Verifying this change
(Please pick either of the following options)
This change added tests and can be verified as follows:

Extended TableITCase to verify close logic

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@dawidwys Thanks for the suggestion, I have update it.

@dawidwys I add more javadoc about TableResult#getResultKind method and TableResult#print method. I'm writing the document of FLIP-84, find that it's better we can explain the limitation of print method in javadoc. sorry about late update.

feel free to merge the last commit, I can also put this commit into FLINK-17599

I already squashed it on top of the previous changes. I am waiting for a stable master to merge it.


Ability to disable default blur handler

Summary 💡
Not all use cases may wish to have the Formik onBlur function called to touch fields when blurring. Ideally there would be a way to disable this behaviour (see motiviation section). I do not know whether it would be possible for users to disable this globally, or whether it might just need to respect the Formik validateOnBlur maybe, or another option all together?
Obviously this can be disabled "manually" by passing a custom no-op onBlur function; however, this would require passing a no-op to every textfield (or general MUI form component) or wrapping in a custom component (not awful, but not ideal).
Motivation 🔦
While common, calling the blur function automatically results in fields being "touched" on blur, while some people may wish to only have them touched on submit. For example, it may be desired to not see errors until after the initial submit, which is not possible currently (as fields are touched on blur).

Hi @kendallroth
That functionality is actually built into formik.
https://github.com/jaredpalmer/formik/blob/b9cc2536a1edb9f2d69c4cd20ecf4fa0f8059ade/packages/formik/src/Formik.tsx#L691
I don't think this library can actually do anything about it.

Yeah, I am definitely aware that it is built in to Formik (not a problem). What I am referring to specifically though is that it would be nice if there was a way to disable actually calling the onBlur function in this library.
For example, in the Formik docs mentioning MUI, the onBlur handler has been left entirely out (resulting in fields only being touched on submit). However, there is no way to disable the onBlur handler from being called in this library except by passing a custom onBlur handler to all fields (not ideal, although could wrap and copy prop definitions, etc...).
I was hoping there may be a way to maybe skip the default blur handler if validateOnBlur was false (from Formik), but this certainly might not be the most intuitive approach 😄. Otherwise, if there would be a way to disable globally (can think in Vue implementation, but not React at the moment 🤦), that would also work?

As a temporary (and awful 😉) workaround, I have used patch-package to persist manual changes to the dist/esm files.
Also, it looks like Select already has a no-op onBlur function instead of calling Formik, and a few others may as well?

P.S. Only linking this here for others who may wish to use a similar hacky approach vs passing no-ops everywhere or wrapping components (basically just laziness 🤦). It should not be considered a library recommendation at all!

diff --git a/node_modules/formik-mui/dist/esm/TextField.js b/node_modules/formik-mui/dist/esm/TextField.js
index 8c6a53c..a078ff7 100644
--- a/node_modules/formik-mui/dist/esm/TextField.js
+++ b/node_modules/formik-mui/dist/esm/TextField.js
@@ -7,9 +7,7 @@ function fieldToTextField(_a) {
     var disabled = _a.disabled, _b = _a.field, fieldOnBlur = _b.onBlur, field = __rest(_b, ["onBlur"]), _c = _a.form, isSubmitting = _c.isSubmitting, touched = _c.touched, errors = _c.errors, onBlur = _a.onBlur, helperText = _a.helperText, props = __rest(_a, ["disabled", "field", "form", "onBlur", "helperText"]);
     var fieldError = getIn(errors, field.name);
     var showError = getIn(touched, field.name) && !!fieldError;
-    return __assign(__assign({ error: showError, helperText: showError ? fieldError : helperText, disabled: disabled !== null && disabled !== void 0 ? disabled : isSubmitting, onBlur: onBlur !== null && onBlur !== void 0 ? onBlur : function (e) {
-            fieldOnBlur(e !== null && e !== void 0 ? e : field.name);
-        } }, field), props);
+    return __assign(__assign({ error: showError, helperText: showError ? fieldError : helperText, disabled: disabled !== null && disabled !== void 0 ? disabled : isSubmitting, onBlur: onBlur }, field), props);
 }
 function TextField(_a) {
     var children = _a.children, props = __rest(_a, ["children"]);

diff --git a/node_modules/formik-mui-lab/dist/esm/DatePicker.js b/node_modules/formik-mui-lab/dist/esm/DatePicker.js
index 49c5bd0..c21e694 100644
--- a/node_modules/formik-mui-lab/dist/esm/DatePicker.js
+++ b/node_modules/formik-mui-lab/dist/esm/DatePicker.js
@@ -9,10 +9,8 @@ function fieldToDatePicker(_a) {
     var _b = _a.field; _b.onChange; var field = __rest(_b, ["onChange"]), _c = _a.form, isSubmitting = _c.isSubmitting, touched = _c.touched, errors = _c.errors, setFieldValue = _c.setFieldValue, setFieldError = _c.setFieldError, setFieldTouched = _c.setFieldTouched, _d = _a.textField, _e = _d === void 0 ? {} : _d, helperText = _e.helperText, onBlur = _e.onBlur, textField = __rest(_e, ["helperText", "onBlur"]), disabled = _a.disabled, label = _a.label, onChange = _a.onChange, onError = _a.onError, renderInput = _a.renderInput, props = __rest(_a, ["field", "form", "textField", "disabled", "label", "onChange", "onError", "renderInput"]);
     var fieldError = getIn(errors, field.name);
     var showError = getIn(touched, field.name) && !!fieldError;
-    return __assign(__assign({ renderInput: renderInput !== null && renderInput !== void 0 ? renderInput : (function (params) { return (React.createElement(TextField, __assign({}, params, { error: showError, helperText: showError ? fieldError : helperText, label: label, onBlur: onBlur !== null && onBlur !== void 0 ? onBlur : function () {
-                setFieldTouched(field.name, true, true);
-            } }, textField))); }), disabled: disabled !== null && disabled !== void 0 ? disabled : isSubmitting, onChange: onChange !== null && onChange !== void 0 ? onChange : function (date) {
-            setFieldTouched(field.name, true, false);
+    return __assign(__assign({ renderInput: renderInput !== null && renderInput !== void 0 ? renderInput : (function (params) { return (React.createElement(TextField, __assign({}, params, { error: showError, helperText: showError ? fieldError : helperText, label: label, onBlur: onBlur }, textField))); }), disabled: disabled !== null && disabled !== void 0 ? disabled : isSubmitting, onChange: onChange !== null && onChange !== void 0 ? onChange : function (date) {
+            //setFieldTouched(field.name, true, false);
             setFieldValue(field.name, date, true);
         }, onError: onError !== null && onError !== void 0 ? onError : createErrorHandler(fieldError, field.name, setFieldError) }, field), props);
 }

I have managed to avoid this so far but I thought we might eventually need it.
We could create a Context that allows users to  customize beaviour
interface FormikMuiContextType {
  disableSubmitLoading: boolean,
  disableDefaultBlurHandler: boolean,
}

const FormikMuiContext = React.createContext({
  // defaults
  disableSubmitLoading: false,
  disableDefaultBlurHandler: false,
})

Then users can customize behaviour globaly or per form or component
(Select is probably an oversight)

Gotcha, yeah, something like that could be nice (if it didn't introduce too much overhead).
On the other hand, I honestly just usually wrap Formik components myself (as I only use a few of them) and apply this behaviour in that manner. This library was really easy to get up and running and saved that time though (thanks for putting it together 🎉)! And I could just wrap the component as well, but that felt a little extra/unnecessary if there was something else (although using patch-package feels like a step down honestly 🤣).

I actually use a mixture of both. I have several projects using it and some of the more complicated components (Autocomplete) is really tricky to  do right. But yes the core goal is to get people going quickly


Update references to Knative monitoring docs

What this PR does / why we need it:
The links in the README are broken and point to the deprecated Knative monitoring system. This PR just updates the links to updated information.

I am not sure why this is red, it isnt obvious to me in the build logs 🤔

/assign @ellistarn

This one could use a review :)

There is a good opportunity to comment here with opinions on this topic! https://github.com/knative/docs/issues/2931#issuecomment-729773990

I have a simple but functional metrics platform for knative services with Prom/Grafana dashboards, mostly taken from the deprecated Observability project. Now that this exists, it would be simple to include all the old Knative dashboards, and tailor it for kfserving, until there is a permanent solution.
I am hoping to gather some feedback, if there is interest here I can whip it into shape as the stopgap metrics solution.

Hi there @iancoffey, we (Arrikto) have a new UI for KFServing, which we will be contributing as part of Kubeflow's next release. We presented it in last Tue's Community Meeting and you can see it here.
Part of the UI originally used the deprecated Ovservability Plugin [from version 0.18.3] to expose some Grafana graphs.
I strongly agree that KFServing should have a solution to expose the metrics of InferenceServices. I think we could either:
A. keep on using the yaml's provided from the KNative github, they still provide the yamls even in the latest 0.18.3 release
B. Go with @iancoffey's solution and maintain this functionality in KFServing
If we prefer option B, then we would gladly help @iancoffey with his work, since it will unblock both the metrics problem in kfserving and allow us to use the Grafana graphs in our new UI.

@kimwnasptd Thank you, makes sense to me. Sounds like we should collaborate on wrapping up this metrics project, I will put some time in today and tomorrow to get it over the finish line, and then we can possibly contribute it or keep it as a project where we both can PR fixes and improvements.

@iancoffey Can you help rebase the master and see if test succeed?

Rebased, fingers crossed.

knative monitoring has been moved to https://github.com/knative-sandbox/monitoring and please help move the doc to https://github.com/kserve/website and contribute to https://github.com/kserve/website/issues/24


librealsense: fix intel darwin build

Description of changes
New SDK required on intel to fix:
/nix/store/9dw29sl9gsl8090cf6qkmhj2pprl3z5z-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:1189:83: error: expected ','
    kCFURLBookmarkCreationWithSecurityScope API_AVAILABLE(macos(10.7), macCatalyst(13.0))  API_UNAVAILABLE(ios, watchos, tvos) = ( 1UL << 11 ), // Mac OS X 10.7.3 and later, include information in the bookmark data which allows the same sandboxed process to access the resource after being relaunched

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 233696 run on x86_64-darwin 1

6 packages built:

librealsense
librealsense.dev
python310Packages.pyrealsense2
python310Packages.pyrealsense2.dev
python311Packages.pyrealsense2
python311Packages.pyrealsense2.dev


docker-machine ssh is erroring out with exit status 255

I am trying to connect to virtualbox virtual machine created on mac via docker-machine tool. But connection is getting failed while running an commands which uses ssh.
Docker Machine version
Docker Machine Version: 0.8.0, build b85aac1
Information
I am able to ssh if i create the docker machine with virtualbox driver.
docker-machine create --driver virtualbox raghu-docker-test.
bash-3.2$ whoami
raghu
bash-3.2$ ssh <IP_ADDRESS>
<EMAIL_ADDRESS>password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-34-generic x86_64)
Documentation: https://help.ubuntu.com
Management: https://landscape.canonical.com
Support: https://ubuntu.com/advantage
Last login: Thu Aug 18 22:58:53 2016 from <IP_ADDRESS>
raghu@raghu-test-env:~$ ls -ltr
total 44
-rw-r--r-- 1 raghu raghu 8980 Aug 18 18:47 examples.desktop
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Videos
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Templates
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Public
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Pictures
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Music
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Downloads
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Documents
drwxr-xr-x 2 raghu raghu 4096 Aug 18 18:57 Desktop
raghu@raghu-test-env:~$ exit
logout
Connection to <IP_ADDRESS> closed.
Steps to reproduce

docker-machine create --driver none -url=tcp://<IP_ADDRESS>:2376 raghu-docker-test
Running pre-create checks...
Creating machine...
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env raghu-docker-test
docker-machine env raghu-docker-test
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "<IP_ADDRESS>:2376": dial tcp <IP_ADDRESS>:2376: getsockopt: connection refused
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
docker-machine regenerate-certs raghu-docker-test
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
docker-machine -D ssh raghu-docker-test -vvv
Docker Machine Version: 0.8.0, build b85aac1
Found binary path at /usr/local/bin/docker-machine
Launching plugin server for driver none
Plugin server listening at address <IP_ADDRESS>:56981
() Calling .GetVersion
Using API Version 1
() Calling .SetConfigRaw
() Calling .GetMachineName
(raghu-docker-test) Calling .GetState
(raghu-docker-test) Calling .GetSSHHostname
(raghu-docker-test) Calling .GetSSHPort
(raghu-docker-test) Calling .GetSSHKeyPath
(raghu-docker-test) Calling .GetSSHUsername
Using SSH client type: external
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none @ -p 0] /usr/bin/ssh }
&{/usr/bin/ssh [/usr/bin/ssh -F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none @ -p 0 -vvv] [] [] false [] [] [] [] }
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
exit status 255

I saw the same error a few days ago and I can't remember what I did to fix it but I suspect it is the -vvv in the docker-machine -D ssh raghu-docker-test -vvv causing this. Can you try without -vvv?

I tried with that also, same issue
Raghu
On Wednesday, August 24, 2016, Gaurav Arora<EMAIL_ADDRESS>wrote:

I saw the same error a few days ago and I can't remember what I did to fix
it but I suspect it is the -vvv in the docker-machine -D ssh
raghu-docker-test -vvv causing this. Can you try without -vvv?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/docker/machine/issues/3683#issuecomment-241979799,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANAMxUmXIHqJYGld3GnVwlh7e8Nv-OLOks5qi_J0gaJpZM4JoiuI
.

I'm having the same issue... but after a couple of minutes after successfully creating a docker host on Azure, and event after ssh'ing successfully
This is weird...

I am facing the same issue , how did we choose the url for the docker machine ! Is that random or is that once from ifconfig (In linux) !


Latest Version

could you update it to the latest version of Pokeone? they changed the .dll file names so it is not working now :/

If you know the dll names have changes, then why don't you fix the sourcecode yourself? It's not that difficult, and I haven't worked on this in years.

the game file structure has changed, not the Dll files only, so your hack needs a full update.

Then you'll have to wait for somebody to fork and update it. I have no interest in maintaining this project.

k


non-self-closable HTML tags are formatted to become self-closed tags

Example:
# this div exists for creating space inside display: flex

is formatted as

According to the W3C validator, self-closing divs are not valid. (https://validator.w3.org/nu/#textarea)
Maybe self-closing should be done only for whitelisted tags?

@ndac-todoroki Thanks for opening an issue!
Unless I'm mistaken, Surface/LiveView will render

 if your Surface code is
.
Therefore, HTML tags with no contents can be collapsed in Surface code into a single self-closed ("void") element, and they will emit the same exact HTML. This is why the formatter chooses to make those tags self-closing.

For reference, here's the test that demonstrates that this is an intentional design choice. (It uses a component, but applies to HTML elements for the reasons described above.)
https://github.com/surface-ui/surface_formatter/blob/v0.7.4/test/surface/formatter_test.exs#L404-L418

Ah! I was confused between heex files and sface files!
I tested
 inside my sface file now and it indeed render

 correctly.
Sorry for the trouble!

@ndac-todoroki Excellent! No trouble at all; thank you for raising the issue. Now we've double checked and ruled out that this could be a problem. 🙂


Screenshot Configure Subsection Labels mixed up

What steps will reproduce the problem?
1. go to capture tab
2. select "configure" for Screenshots
3. select "Subsection"

What is the expected output? What do you see instead?
The "Top" and "Left" labels are mixed around, the "Top" is actually working as
the "Left" value offset and the "Left" is actually working as the "Top" value

What version of the product are you using?
1.0.7

On what operating system?
Windows 7

Please provide any additional information below.
Minor issue as its easy enough to still use the fields once you know they are
mixed around.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 2 Oct 2011 at 11:18

Fixed by PR #66


⚠ Homepage has degraded performance

In bb8dcfb, Homepage (https://h-edu.cz) experienced degraded performance:

HTTP code: 0
Response time: 0 ms

Resolved: Homepage performance has improved in cb5cf90 after 35 minutes.


x/tools/go/types: overflow in int -> string

Gc rejects to compile the following program:
package a
var a = string(9223372036854775808)

saying:
overflow in int -> string

go/types compile it successfully.
Compilers must agree on whether it is a valid Go program or not.
on commit af817890aa7b628234075a6cb01a3a435fb8317d

Given the spec as is, I believe this should compile w/o errors. The spec says:
http://tip.golang.org/ref/spec#Conversions
A constant value x can be converted to type T in any of these cases:
...
x is an integer constant and T is a string type. The same rule as for non-constant x applies in this case.

and:
http://tip.golang.org/ref/spec#Conversions_to_and_from_a_string_type
Converting a signed or unsigned integer value to a string type yields a string containing the UTF-8 representation of the integer. Values outside the range of valid Unicode code points are converted to "\uFFFD".

There's no mention of a compile-time (or even run-time) error. The integer should be converted into "\uFFFD".

Closed by mistake.

Then this is a bug in gc, right?

@dvyukov yes, I believe this is a gc compiler bug.
We could make the spec more restrictive, but if the valid Unicode ranges changes, the compiler would have to be updated (that said, it would probably be a range extension and thus a backward-compatible change).

Too late for Go 1.5. The only possible visible effect of making changes to fix hypothetical bugs like this one is introducing real ones.

This was fixed via https://go-review.googlesource.com/#/c/21344/ (fix for #15039).


moderngpu Makefile:129: recipe for target 'all' failed

Hello ...
I am getting the same error while compiling in my HPC account, as here with this singularity build.
Can you give any suggestions to try, or is the source code simply too old for the current system updates?
Thanks in advance.
sudo singularity build ./nvbio.sif ./nvbio.def.txt
Bootstrap: docker
From: nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04
%post
rm /etc/apt/sources.list.d/nvidia-ml.list && apt-get clean
apt-get -y update -qq
apt-get -y install git cmake
#git clone --recursive git@github.com:vmiheer/nvbio.git  ## Connection error.
git clone https://github.com/NVlabs/nvbio.git
cd nvbio
mkdir build
cd build
cmake ..
make -j8

#################
[ 35%] Linking C static library libhtslib.a
[ 35%] Building CXX object contrib/moderngpu/CMakeFiles/moderngpu.dir/src/mgpuutil.cpp.o
[ 36%] Building CXX object contrib/moderngpu/CMakeFiles/moderngpu.dir/src/sparsematrix.cpp.o
[ 36%] Building CXX object contrib/moderngpu/CMakeFiles/moderngpu.dir/src/mmio.cpp.o
/nvbio/contrib/moderngpu/src/mmio.cpp: In function 'char* mm_typecode_to_str(char*)':
/nvbio/contrib/moderngpu/src/mmio.cpp:460:9: warning: variable 'error' set but not used [-Wunused-but-set-variable]
int error =0;
^~~~~
[ 36%] Built target htslib
[ 37%] Linking CXX static library libmoderngpu.a
[ 37%] Built target moderngpu
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
FATAL:   While performing build: while running engine: exit status 2

Hi there, did you ever fix this issue? I am encountering the same trying to make -j8


Multiple export to sheets

Many lists export sheet

Add a sheet resx

http://superuser.com/questions/366468/what-is-the-maximum-allowed-rows-in-a-microsoft-excel-xls-or-xlsx


DataStore @function Lambda resolver

Which Category is your question related to?
DataStore, @function directive
Amplify CLI Version
4.21.1
How does one use the @function directive on a query when using the DataStore? I know I can edit the .vtl files, but is it possible to use @function in combination with the DataStore, and if so, is there an example available? I am trying to use a Lambda resolver in one of the DataStore queries.

@mdoesburg DataStore sync operations only work with DynamoDB at this time, so @function cannot be used. However you can use @function on your schema and leverage the API category for those GraphQL fields in combination with DataStore in the same application.
Is there a reason you're looking to use this with DataStore? Synchronization is a process that needs strong controls or you end up with data inconsistency problems, which is why DynamoDB is the data source which AppSync leverages for DataStore. If you used a Lambda function then there's a strong chance that data integrity  issues could arise causing complexity in your app or worse loss of data.

@undefobj I am working on an app with full offline support, hence I am using DataStore, but another requirement is that calls need to be done to an external REST API, so that a legacy database can be updated after mutations occur in this app.
My first inclination was to use DynamoDB streams with a Lambda trigger that calls the REST API, but we need to know the identity of the user, and as far as I know you can't get get this information from DynamoDB streams.
So the use case is to sync some external database when data in DynamoDB gets updated.

@undefobj Do you have any suggestions what the best approach would be? I tried opening a discussion a while back, but with no luck so far. :p https://github.com/aws-amplify/amplify-js/discussions/5861

Thanks for the information @mdoesburg. We're looking at this for a future feature but have no timeline. Leaving this issue open for anyone to +1 with their use case details.

I know this issue is nearly a year old, however I'd be curious to understand:

Can one specify - at the level of a your models (/amplify/backend/api/name/schema.grapqhl, or elsewhere) which models SHOULD be using DataStore, and which models shouldn't?
Would anything break or return unexpected behavior (behind the scenes, in Amplify, in AppSync, etc) if I enable datastore on the entire API, but one of my models uses an @function resolver?


Add ability to change base currency

This PR fullfils https://github.com/nickfarrow/SatSale/issues/16
NOTE: this requires the sqlite payments table to be recreated (schema change)
Changes:

Add to config options: base_currency and currency_provider (price feed)
price_feed.py: fetch conversion rates from the configurable currency_provider and for the base_currency (instead of hardcoded USD)
Dynamically replace currency symbol in the Donate html page based on base_currency
Some variable renamings

@nickfarrow : The base_currency probably also needs to be replaced in the index.html and the woocommerce plugin. I dont have a Woocommerce instance to test, so I would throw this over to you from here on...

Fantastic @ingolevin, thank you again. and thanks for the tips @jkar32.

Thank you @jkar32 for you great remarks - really appreciate someone with experience giving advice!
@nickfarrow

Woocommerce will work, it will just send an amount based on whatever the currency is set to in woocommerce, so as long as those are the same.

But will it work correctly? Say you have a Woocommerce store with EUR items, and proceed to checkout a shopping basket of  100€. Correct me if I'm wrong, but right now ?amount=100  will get passed to SatSale and if my config.base_currency is USD then it would apply the USD:BTC conversion rate, and not the EUR:BTC.
Yes, this might be an edge case because you'd expect that you configure your SatSale instance to match the currency in your Woocommerce store - but it is possible to have a mismatch.
e,g. the user might simply not know to adjust also base_currency in config, or there is a messed up merge that resets it to the default USD

But will it work correctly? Say you have a Woocommerce store with EUR items, and proceed to checkout a shopping basket of 100€. Correct me if I'm wrong, but right now ?amount=100 will get passed to SatSale and if my config.base_currency is USD then it would apply the USD:BTC conversion rate, and not the EUR:BTC.

Not correctly, it would give incorrect amounts at checkout. I'll add some warnings to the woocommerce docs for now. I can't think of an easy way to confirm the currencies are the same, other than passing it as another argument to /pay but that would be more another step (with some security so it cant be manipulated during checkout request). We'd probably want /pay?currency=JPY...  to actually use JPY for satsale, and not just return an error (if != base_currency).

Updated: https://github.com/ingolevin/SatSale/commit/3b206727eb4427d59c15a45d9ffafecc0eaab963
No idea why donate.html got updated though. The content is identical by my IDE detected it as a change, so I thought it's safer to commit.

OK I just did a rebase and made some minor edits (trying to get better at git rebase, took a few attempts 😅)
I'll test one more time and then I think we're ready to merge, unless there's anything else we want prior?

@nickfarrow Re: git rebase
This is useful https://youtu.be/qsTthZi23VE?t=84


Don't install deploy dependencies for tests

I believe ddtrace and gunicorn are not required when running tests.
Importing ddtrace is somewhat costly (tests in a container with warehouse test dependencies installed):

Without ddtrace

> time pytest --help
real	0m2.521s
user	0m2.217s
sys	0m0.255s

With ddtrace

> time pytest --help
real	0m3.094s
user	0m2.713s
sys	0m0.346s

This yielded to a modest improvement on my computer (time to run the test suite - cache deleted between runs):

With the improvement: 19.20s
Baseline: 19.88s

/cc @miketheman

However, I believe the image in CI is built there :
https://github.com/pypi/warehouse/blob/c9231a69413f218adcc8c2236b78059f524eadb6/.github/workflows/ci.yml#L30-L38
But I don't know if it is safe to remove dependencies from there too or if this image is also used in other places.

Can the ddtrace plugin not be disabled in pytest?

Can the ddtrace plugin not be disabled in pytest?
It can but I think it will still be loaded.

Let me check this and how it impacts the performance in the CI.

There are two sets of complementary changes. The table below summarizes them, with the first line build representing the image build and test the testing job.

Baseline
Plugin disabled
Plugin not-installed

build
/
3m52s
3m30s

test
1m32s
1m24s
1m26s

The build changes (when the CI image is constructed) are not releveant because the image is cached by depot and then layers are re-used. We only benefit from not installing a package (and its dependencies) that is not used in the image.
Disabling the plugin (either because it is not installed or because it is explicitly disabled) yields some nice improvements (about 8%)

Given the previous results - I think only disabling trace plugins in the tests is enough.


Enable package management tests

Purpose
$subject
Fixes #
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #23968 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #23968   +/-   ##
=======================================
  Coverage   14.59%   14.59%
=======================================
  Files          51       51
  Lines        1411     1411
  Branches      219      219
=======================================
  Hits          206      206
  Misses       1189     1189
  Partials       16       16

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update caabe6f...b5402d1. Read the comment docs.


settings management

added rtx settings * commands
As part of this I also documented "legacy version files" better.

Codecov Report
Base: 82.15% // Head: 82.89% // Increases project coverage by +0.73% :tada:

Coverage data is based on head (1969718) compared to base (eef7cf5).
Patch coverage: 86.91% of modified lines in pull request are covered.

:exclamation: Current head 1969718 differs from pull request most recent head b008c4e. Consider uploading reports for the commit b008c4e to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #18      +/-   ##
==========================================
+ Coverage   82.15%   82.89%   +0.73%
==========================================
  Files          59       64       +5
  Lines        1872     1970      +98
==========================================
+ Hits         1538     1633      +95
- Misses        334      337       +3

Impacted Files
Coverage Δ

src/cli/alias/ls.rs
85.71% <ø> (ø)

src/cli/local.rs
70.00% <ø> (ø)

src/cli/render_help.rs
100.00% <ø> (ø)

src/cli/settings/get.rs
75.00% <75.00%> (ø)

src/config/config_file/rtxrc.rs
75.95% <80.00%> (+6.67%)
:arrow_up:

src/cli/settings/set.rs
85.00% <85.00%> (ø)

src/config/settings.rs
77.94% <88.46%> (+6.51%)
:arrow_up:

src/config/mod.rs
85.16% <88.88%> (+0.64%)
:arrow_up:

src/cli/mod.rs
93.18% <100.00%> (+0.15%)
:arrow_up:

src/cli/settings/ls.rs
100.00% <100.00%> (ø)

... and 4 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


fix(chat): fix publication change path scroll (Issue #1609)

Description:
List of folders on Change path form has vertical scroll
Scroll should appear if list of folders goes beyond modal form
Issues:

Issue #1609

UI changes
Before:

After:

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


Stop using file system sync api

Describe the bug
As clearly stated in https://nodejs.org/api/fs.html#synchronous-example, The synchronous APIs block the Node.js event loop and further JavaScript execution until the operation is complete so we should only use it in testing context
Expected behavior
Switch to equivalent async api

Need to cooperate with this PR https://github.com/ChainSafe/lodestar/pull/3797/files

Yes we should not use the fs sync api for recurring actions doing busy times. That would be only the db, which does not use the sync api. However, for script-ish tasks, like starting the validator cli and reading keystores it really doesn't matter in my opinion
The process is not gonna do anything else until it has read the keystores, so it doesn't matter if it's sync or async for a performance point of view.
The only usage of the fs sync api that's happening during node's high load is:

persisting SSZ invalid objects (can be an issue, large files, frequently)
persisting ENR (not an issue, tiny file, infrequently)


YouTube redirect for 24.908

User Story
Users who watch the videos in the 24.908 collection want to be able to link through to the OCW site.
The link in the description is a short URL, https://ocw.mit.edu/24-908S17 in their description
Acceptance Criteria

[ ] redirect the URL (not path) https://ocw.mit.edu/24-908S17 to https://ocw.mit.edu/courses/24-908-creole-languages-and-caribbean-identities-spring-2017/

Deployed to QA live and draft.

@shaidar Thank you. Verified.
The following redirect as expected:
https://draft-qa.ocw.mit.edu/24-908S17/
https://live-qa.ocw.mit.edu/24-908S17/

Deployed to production live and draft.


HTTP POST example?

This page is ranking # 2 on google for "send http post request in .net core" and yet it does not contain a single example on how to send a POST request.
I understand this might not be the place to put such documentation, but I haven't been able to find a single post request example in the .net core official docs.

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

ID: 881cef77-11ef-ac11-06d0-0996a1ccfa1b
Version Independent ID: 3d356334-e672-7e8b-1fef-7944ebee99eb
Content: Make HTTP requests using IHttpClientFactory in ASP.NET Core
Content Source: aspnetcore/fundamentals/http-requests.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @stevejgordon
Microsoft Alias: scaddie

As mentioned by @suarezafelipe, I am too waiting for the POST request example.

@stevejgordon can you create a POST sample?

I'd like to add my voice to a request for a post example along with collecting an expected response object.

I finally managed it.  The following controller action uses a named HttpClient to post two parameters (clientId and secret) to a remote API in order to request a jwt token as the response.  The parameters are each strings and they were posted as a single JSON object which contained them.
//first the dependency injection
private readonly IHttpClientFactory _httpClientFactory;

public PlatformController(IHttpClientFactory httpClientFactory)
{
    _httpClientFactory = httpClientFactory;
}

//controller action
public async Task<ActionResult<string>> RequestToken()
{
    string secretString = "*****";
    string clientIdString = "*****";

    var result = await _httpClientFactory.CreateClient("RequestTokenClient").PostAsJsonAsync("api/v1/clientauthentication", new { clientId = clientIdString, secret = secretString });

    return await result.Content.ReadAsStringAsync();
}

Hope that helps someone else!  This is actually very useful now that it is going.  I will move this method out of the controller and use it as a service that supplies a token on request, and it will only require a single HttpClient be generated to do so.  Pretty neat.

What we need is a simpler sample - for example, calling the web API sample

I'm also looking forward to having one. Will it be used like.net before?Not dependency injection, because we're going to write a generic library that can be used like.net before
public HttpClient HttpClient()
        {
            return HttpClientFactory.Create();
        }

need an example


Add warning about ssh hardware security keys.

Why:
Closes [issue link]
I've tried signing commits with an hardware generated ssh ed25519 key and I get an error message. Maybe this is planned to be supported, but as of git 2.38, it doesn't seem to work. See https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key-for-a-hardware-security-key for what I'm talking about.
What's being changed (if available, include any code snippets, screenshots, or gifs):
Just adding a sentence.
Check off the following:

[x] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

@nicolas-graves Thanks so much for opening a PR! I'll get this triaged for review :zap:

Sorry, that was a configuration error (the first tutorial doc I used didn't gave info about the key:: prefix which is indeed now in docs).

@nicolas-graves Thanks for coming back and updating us! We appreciate that. And thank you again for your passion and interest in improving the docs!


utils.go functions to not require os.File

Would you be open to modify the signature of the functions in utils.go:

InheritSize
SetSize
GetSizeFull
GetSize

to either accept a File-like interface:
type FileLike interface {
	Fd() uintptr
}

or to just require the the File descriptor myFile.Fd() instead of the os.File concrete struct?
func InheritSize(ptyFd, ttyFd uintptr) error {
...
}

If I am not mistaken otherwise it requires the caller to unnecessarily create a os.File object:
var myFileLike FileLike
myFile := os.NewFile(myFileLike.Fd(), "")
pty.InheritSize(myFile, myOtherFile)

In what situation do you have a fd without os.File? I had that situation when dealing with CGO, but it is a quite specific and rare situation.
As those Size function can only work with a terminal fd like the one pty.Start returns, I am concerned that modifying the signature to an interface would be more confusing than helpful in most cases.
Could you share more detail about your use case?
FYI, I have another lib https://github.com/creack/termios which is lower level and more "generic" expecting fds directly

The key use case is that I am running into is when using the inherit size:
pty.InheritSize(context.Stdout, ptmx)

The ptmx was created by this library so it meets the type constraint. But sometimes (i.e. within a test runner) context.Stdout gets replaced by a file like object that would do more complex routing/printing/copying/etc.

Thank you for the detail, but this seems like a very specific case, and I don't think it would justify a change in the public api / major version bump. As you mentioned, os.NewFile does the trick and I believe switching to FDs directly would confuse users.
Note that a "file-like" object which is not backed by an actual tty/pty will fail those calls with "invalid ioctl for device".
Also note that InheritSize is meant to set the pty to the size of the parent terminal, i.e. os.Stdin & co. If the process is in a test runner context, those would be the tty of the runner.
Closing for now. Let me know if you have more questions.

An issue that I just ran with using the FD to create the new os.File object is that when the function with the os.File ends the os.File goes out of scope and gets gc'ed, cuaing the FD to be closed.

This is indeed a good use case. I don't think it is wide enough to warrant a breaking change in the api, but would an additional helper work for you?

An issue that I just ran with using the FD to create the new os.File object is that when the function with the os.File ends the os.File goes out of scope and gets gc'ed, causing the FD to be closed.

The File methods in package net dup the fd for this reason. e.g. https://pkg.go.dev/net#TCPConn.File
The purpose of TCPConn.File is to give you access to the fd for a TCP connection, so you can do ioctl stuff etc. It would be bad if closing the os.File also closed the TCP connection, so the returned os.File uses a dup of the fd. This pty issue seems like an analogous situation, and I think the same workaround might be appropriate. This would mean there's still no need for additional API surface in creack/pty.


Optimize over Multiple Vectors

Hi,
We have two column vectors to optimize over, say col1 and col2, and one of the constraint involves the their entry by entry difference col1-col2. We used the codes
m.set_weight(row,cols[i]-cols2[i] , weight);
where i is an index, but received an error saying
"cannot subtract coin_cbc::Col from coin_cbc::Col "
It seems that what cols[i] gives is a "Col" object, so we are wondering how to convert it to a value or whether there is another way to optimize over multiple vecotrs. We are doing this because we would like to minimize over the sum of absolute values of each entry (i.e, the L1 norm), so we express x as the difference between two vectors with non-negative entries.

Sorry, I missed this.
set_weight just set a weight to a column, it doesn't do any fancy math. So,
m.set_weight(row,cols[i], weight);
m.set_weight(row,cols2[i], -weight);

if I understand correctly your question.


Add TRANS_SPRING interpolation option to tweens

Please consider adding this sping tween.
I really miss it.
I am not sure where this easing function came from?
I think I first saw it in iTween for Unity. https://github.com/jtothebell/iTween/blob/master/iTween.cs
It is similar to back or elastic but different enough to notice and seems better suited for ui elements like when OSX and iOS scroll a list past the end and 'spring' back?
Here is an animation from (https://www.protopie.io/learn/docs/interactions/animation-curves) just to show what it looks like kinda? This one is simpler with no parameters.

It only has one direction, out. Possibly more could be calculated for symmetry, but I don't think it would ever be used anyway, and that is the way I always 'find' the code.
Here is a very simple test project: https://github.com/rakkarage/TestTween (4.0 branch!)
Please & Thanks.

Thanks for opening a pull request :slightly_smiling_face:
Feature pull requests should be associated to a feature proposal to justify the need for implementing the feature in Godot core. Please open a proposal on the Godot proposals repository (and link to this pull request in the proposal's body).

From what you said about spring transition, it has some parameters to customize it. Is it possible to tweak it, so that it doesn't behave the same with different eases? The PR looks good otherwise.

https://humpf.etienne.tech/article
this was just to kinda show how it works...

It has to be simple with no parameters to fit into the easing system. It only takes four parameters. I think someone just made a version of this damped spring code with hard coded parameters maybe idk. None of the eases have any extra parameters. can maybe add another more complex damped spring system to the physics system if needed?
It is not exactly the same each ease. If you ease far in short rime the spring is fast else it springs slower.
having a 'fixed 'spring better then having no spring?

Thanks.

Well, currently Tweens don't support easing/transition parameters, because there was no need. Adding a new transition type that fits the current system is ok, but any more than that... It'd need some specific tweening functions, and they can be implemented in GDScript using method tweening. Supporting it in core would require some more changes.

Based on @KoBeWi's review it seems that a proper solution would need more complex changes than proposed here. Either way it's not breaking compat and won't break compat, so we can bump it to 4.x until an agreement is reached.

Well, currently Tweens don't support easing/transition parameters, because there was no need.

That is fine, because this code/proposal does not need any new parameters and fits perfectly into the existing system with no changes.

Adding a new transition type that fits the current system is ok, but any more than that... It'd need some specific tweening functions, and they can be implemented in GDScript using method tweening. Supporting it in core would require some more changes.

That is what I did. Added a new transition that fits the current system. It has been tested and works in the linked pull request. as can be seen the in gifs. What other functions does it need?
The linked article is not the proposal... just showing what a spring tween looks like.
Thanks.

This looks like a great function that I think belongs in the base system, being a very common transition type.
@rakkarage You should squash your commits into one.

I do not think that is the case... I think there was a misunderstanding when I posted that article but this is a simple four line function with the same parameters and inputs and outputs as all the other tween functions... the missing spring tween

Either way, it's not blocking 4.0. It needs to be reviewed by a maintainer of the area (likely @KoBeWi himself). It also needs to be rebased and squashed, as mentioned above.

This
&spring::out, &spring::out, &spring::out, &spring::out }, // Spring is the same for each easing.

Can you come up with different easing for in, in/out and out/in, by tweaking the parameters? So that the transition doesn't use the same function for each easing.

Thanks. I will try to squish.
&spring::out, &spring::out, &spring::out, &spring::out }, // Spring is the same for each easing.

Can you come up with different easing for in, in/out and out/in, by tweaking the parameters? So that the transition doesn't use the same function for each easing.

no i do not think i can... it always springs at end and I think that makes sense logically... Other tween (linear) behave same way
if it is simulating a spring is there ever a use case where you would not want it to spring after
I guess it could be easily flipped with clever math? idk but this is the function as it is commonly used

Linear has single easing, because it's impossible to tweak it. But spring does have some parameters, so it should be possible. If it's not easy to do then it's probably ok to have it like this for now. But it should be mentioned in the docs.

Thanks. I will try to squish. Sorry I don't really know what I am doing... I might just refork...

Don't refork. Just squash or fixup.
https://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html#the-interactive-rebase

You need to rebase this PR and squash your commits. Your PR must only contain one commit that only includes your changes.  You need to rebase instead.

thanks...
https://github.com/rakkarage/godot/commit/4e005124afcbc469c9b2c14e6c41d5db9abf1494
i think this did it?
sorry

@rakkarage At the top of the PR, it says "Commits 61". This number needs to be 1.

@rakkarage You seem to have reset too much and the all commit are gone. I recommend opening the PR again.

Make sure to open it on a new branch that isn't master.

For future references, this was not merged and is superseded by https://github.com/godotengine/godot/pull/64680.


Refer android libraries correctly

.jar files should be referred with the lib-file tag as suggested in the docs
.so files should be included in jniLibs directory inside platforms/android/app/src/main. Else they are not included and will not work.
Why propose this change?
Installing this plugin places both the .jar and the .so dependency files inside platforms/android/libs/ directory. This confuses cordova into thinking that the project's structure is actually an old eclise project and causes subsequent plugin installations to act accordingly and look for AndroidManifest.xml (and other configuration files) in the wrong place. This results in errors like:
Failed to install 'cordova-plugin-whitelist': Error: ENOENT: no such file or directory, open 'D:\Testing\masterTest\platforms\android\AndroidManifest.xml'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.readFileSync (fs.js:508:33)
    at Object.parseElementtreeSync (D:\Testing\masterTest\platforms\android\cordova\node_modules\cordova-common\src\util\xml-helpers.js:180:27)
    at new AndroidManifest (D:\Testing\masterTest\platforms\android\cordova\lib\AndroidManifest.js:29:20)
    at AndroidProject.getPackageName (D:\Testing\masterTest\platforms\android\cordova\lib\AndroidProject.js:99:12)
    at Api.addPlugin (D:\Testing\masterTest\platforms\android\cordova\Api.js:223:57)
    at handleInstall (C:\Users\kerezov\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js:594:10)
    at C:\Users\kerezov\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js:357:28
    at _fulfilled (C:\Users\kerezov\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:787:54)
Failed to restore plugin "cordova-plugin-whitelist" from config.xml. You might need to try adding it again. Error: Error: ENOENT: no such file or directory, open 'D:\Testing\masterTest\platforms\android\AndroidManifest.xml'
--save flag or autosave detected

Why aren't both files referenced as lib-file?
The .so file isn't properly included in the result .apk if it is referenced as a lib-file. Even if the arch="device" tag is specified as suggested in the docs, the .so file still ends up in libs directory rather than jniLibs
Why reference the .so as a resource-file instead of a source-file?
In case the .so is referenced as a source-file it ends up in the root of platforms/android - namely at platforms/android/jniLibs/armeabi-v7a/libtensorflow_inference.so.
What we actually want is for it to end up at platforms/android/app/src/main/jniLibs/armeabi-v7a/libtensorflow_inference.so in order for it to end up properly in the built .apk.
Further improvement
This .so library can actually be included inside a .jar and referenced as a lib-file. This is the way to move forward I think because that would alleviate cordova of trying to place the file in the correct directory and let the gradle build system handle it.
An example of this can be seen in this sqlite plugin
The above has all been tested with cordova cli version 8.0.0 and<EMAIL_ADDRESS>Ping @sheppard for thoughts about this

Closing this due to inactivity 😢


node exited with code: 1

The latest commit d35c52d results in node exited with code: 1 error message.
[b6f1bec]  works fine.
DapShowLog is very big, but i can provide it if would be helpful.

Yes, please provide nvim-dap log and enable debug = true in setup od nvim-dap-cortex-debug (messages would be in :Notifications if using vim-notify. I don't know what in the recent changes could lead to the node cortex-debug extension dying. Just to confirm: you made no other changes to nvim configuration when this started appearing?

I've retested 2 configs with only difference being presence of  commit = "b6f1bec", in lazy plugin configuration.
With older commit everything works.
Dap log on the newest version is attached.
dap.log

I've rechecked and 6056de8f90736e62e318537e4415eab351487611 is actually the latest working version. Sorry for the wrong info.

Can you please test latest master?
If it still doesn't work then please provide the DAP configuration that you are using.

The latest master works. Thank you.


Talk about RubyTogether in the README

Since we are the managing organization for Bundler

closed via https://github.com/bundler/bundler/pull/5152


Improve source pattern handling

Watch mode lets you configure which source files should be watched. Certain directories are ignored by default, using https://github.com/novemberborn/ignore-by-default. Currently if you use a negation pattern in --source it stops ignoring those default directories. This is annoying as you'll have to repeat them manually.
It would be good to stop one of those default directories from being ignored. Then we could let you specify a negation pattern without disabling all default ignore patterns.
You can find the current logic at https://github.com/sindresorhus/ava/blob/1868204c1901f45b4f66a520ef6486fdd71fe1d2/lib/watcher.js#L273:L276.

Perhaps !!node_modules/**/* can be used to disable the !node_modules/**/* pattern. Then we change the aforementioned logic to include the remaining patterns.

@novemberborn I don't think we should invent our own glob patterns.

Currently if you use a negation pattern in --source it stops ignoring those default directories.

Why?

I'm failing to see the problem here. Maybe provide an example?

Hmm. The problem may be different actually. We should be able to merge the ignore patterns. However it should be possible to override a pattern.
For example you might want to treat a dependency as a source so you can more easily debug that dependency and it's impact on your own project. I'll need to verify whether adding node_modules/somedependency/**/*.js works or whether !node_modules/**/* overrides it. Will update the issue.

#730 ensures that:

You can specify negated patterns without having to declare the default exclusion patterns
You can override the default exclusion patterns. E.g. specifying node_modules/some_dir/**/* will select that directory as a source, while the default exclusion pattern node_modules/**/* remains in effect