[Question] [language server] implied fragments and support for imports

In my GraphQL build system that I set up (built on top of graphql-code-generator and @graphql-tools/import) I require explicit fragment imports:
# import SomeFragment from "./some-path.graphql"

query MyQuery {
    someField { ...SomeFragment }
}

I do this in order to minimize the potential for fragment name conflicts and make it easier to share fragments across packages.
However, this language server seems to assume that all fragments are globally available which is not always the case. Is there a way to configure this? If not, would you accept a contribution to make this configurable?
I'm also curious to learn how others deal with sharing fragments across packages. Is using explicit imports good practice? Or is it better to make all fragments globally available and then be careful to make all fragment names unique across the codebase?

@dotansimha is a co-maintainer of graphql tools and graphql config (which uses graphql-tools loaders) so I will defer to his judgement on that. There have been extensive discussions in the working groups about why this pattern should be deprecated, and why it won’t be accepted as a proposal.
we use graphql config in the LSP, and graphql-tools partially, thus we are using the default loaders, just not for everything. We will need to use custom loaders anyways when moving entirely to graphql tools for embedded support across languages.

It would be cool to support this with a graphql config extension somehow. i think it would need to be handled internally by graphql-tools somehow
the lack of an import pattern is actually very painful for developing a language feature. any file you are editing may depend on any number of non-referenced files throughout a project, so on certain changes you essentially have to re-index all schema files all the time, and even worse all the files with all the operations that contain queries and maybe fragments, because you can't use editor events to determine if these other files have changed because there may be codegen/etc.
using an imports pattern clears this up for us in many ways, but it's also non-standard, and many frameworks have built other conventions around the lack thereof.


Spyder 3.2.0 crashes when Opening or Saving file

Description of your problem
What steps will reproduce the problem?

Trying to open a file using File+Open or Ctrl+O
Trying to save a file using File+Save.

What is the expected output? What do you see instead?
I would expect to be able open or save a file.  Instead, a window pops up saying "Python has stopped working.  A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available."
Please provide any additional information below
I have tried uninstalling and reinstalling Anaconda twice.  Per other posts, I have uninstalled Dell Backup and Recovery, which didn't work.  I have made sure that all of the below packages are up to date.  As of right now, the only way to open a file is to use the File explorer tab in Spyder and the only way to save is to use Ctrl+S.
Versions and main components

Spyder Version: 3.2.0
Python Version: 3.6.1
Qt Version: 5.6.2
PyQt Version: 5.6.0
Operating system: Windows 8.1 (64-bit)

Dependencies
Please go to the menu entry Help > Optional Dependencies (or
Help > Dependencies), press the button Copy to clipboard
and paste the contents below:
IPython >=4.0    :  5.3.0 (OK)
cython >=0.21    :  0.25.2 (OK)
jedi >=0.9.0     :  0.10.2 (OK)
nbconvert >=4.0  :  5.1.1 (OK)
numpy >=1.7      :  1.12.1 (OK)
pandas >=0.13.1  :  0.20.1 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pyflakes >=0.6.0 :  1.5.0 (OK)
pygments >=2.0   :  2.2.0 (OK)
pylint >=0.25    :  1.6.4 (OK)
qtconsole >=4.2.0:  4.3.0 (OK)
rope >=0.9.4     :  0.9.4-1 (OK)
sphinx >=0.6.6   :  1.5.6 (OK)
sympy >=0.7.3    :  1.0 (OK)

Thanks for reporting. This is a duplicate of issue #3903.
Unfortunately I don't think we can do anything on the Spyder side to fix this. Too bad that uninstalling Dell Backup and Recovery didn't work for you.
You can check if you have other Qt5 libraries installed in your system, because that could interfere with Spyder and cause this error too.

I face the exact same problem. How to check whether or not I have other Qt5 libraries installed?


RuntimeError when invoking TFLite INT8 model with tile operation

I'm facing an issue while trying to run inference with a TensorFlow Lite model quantized to INT8 precision. The model was trained using CenterNet MobileNet for hand keypoint detection, and I'm getting a RuntimeError when invoking the interpreter, with the following error message:
Cell In[6], line 34
     31 # Note that CenterNet doesn't require any pre-processing except resizing to the
     32 # input size that the TensorFlow Lite Interpreter was generated with.
     33 input_tensor = tf.image.resize(input_tensor, (224, 224))
---> 34 (boxes, classes, scores, num_detections, kpts, kpts_scores) = detect(interpreter, input_tensor,include_keypoint=True)
     35 print("kpts:",scores[0])
     36 print("kpts_scores:",kpts[0][0]*image_numpy.shape[1])

Cell In[5], line 40
     38 print(input_tensor.dtype)
     39 interpreter.set_tensor(input_details[0]['index'], input_tensor)
---> 40 interpreter.invoke()
     42 scores = interpreter.get_tensor(output_details[3]['index'])
     43 boxes = interpreter.get_tensor(output_details[2]['index'])

File ~/.local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py:923, in Interpreter.invoke(self)
    911 """Invoke the interpreter.
    912
    913 Be sure to set the input sizes, allocate tensors and fill values before
   (...)
    920   ValueError: When the underlying interpreter fails raise ValueError.
    921 """
    922 self._ensure_safe()
--> 923 self._interpreter.Invoke()

RuntimeError: Type 'INT8' is not supported by tile.Node number 198 (TILE) failed to invoke.

Environment:

TensorFlow version: 2.7.0
TensorFlow GPU version: 2.7.0
Python version: 3.8.10
Operating System: Ubuntu 20.04

Steps to Reproduce:

Train a CenterNet MobileNet model for hand keypoint detection
Convert the trained model to TensorFlow Lite INT8 precision using the following code:

import tensorflow as tf

def parse_tfrecord_fn(example):
    feature_description = {
        'image/encoded': tf.io.FixedLenFeature([], tf.string),
        # Add other features here if necessary
    }
    example = tf.io.parse_single_example(example, feature_description)
    image = tf.io.decode_jpeg(example['image/encoded'], channels=3)
    image = tf.image.resize(image, [224, 224])  # Adjust size as necessary
    image = tf.cast(image, tf.float32) / 255.0  # Normalize to [0,1] if required
    return image

def load_tfrecord_dataset(tfrecord_path, batch_size=1):
    raw_dataset = tf.data.TFRecordDataset(tfrecord_path)
    dataset = raw_dataset.map(parse_tfrecord_fn)
    dataset = dataset.batch(batch_size)
    return dataset

def representative_dataset(tfrecord_path, num_samples):
    dataset = load_tfrecord_dataset(tfrecord_path)
    for data in dataset.take(num_samples):
        yield [data]

# Load the TensorFlow SavedModel
saved_model_dir = 'model_weights/tflite/saved_model'
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)

# Set optimization to default for INT8 conversion
converter.optimizations = [tf.lite.Optimize.DEFAULT]

# Set the representative dataset
tfrecord_path = '/home/ai_server/Shabbir/Hand_Keypoint_Detection/data/coco_testdev.record-00001-of-00050'
num_samples = 100  # Adjust the number of samples as needed
converter.representative_dataset = lambda: representative_dataset(tfrecord_path, num_samples)

# Ensure that input and output tensors are quantized
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.allow_custom_ops = True
converter.inference_input_type = tf.uint8  # or tf.int8
converter.inference_output_type = tf.uint8  # or tf.int8

# Convert the model
tflite_quant_model = converter.convert()

# Save the quantized model
with open('centernet_int8_03.tflite', 'wb') as f:
    f.write(tflite_quant_model)

Run inference with the converted INT8 model using the following code:

import tensorflow as tf

from object_detection.utils import label_map_util
from object_detection.utils import config_util
from object_detection.utils import visualization_utils as viz_utils
from object_detection.utils import config_util
from object_detection.builders import model_builder

%matplotlib inline

# Print the image we are going to test on as a sanity check.

def load_image_into_numpy_array(path):
  """Load an image from file into a numpy array.

  Puts image into numpy array to feed into tensorflow graph.
  Note that by convention we put it into a numpy array with shape
  (height, width, channels), where channels=3 for RGB.

  Args:
    path: a file path.

  Returns:
    uint8 numpy array with shape (img_height, img_width, 3)
  """
  img_data = tf.io.gfile.GFile(path, 'rb').read()
  image = Image.open(BytesIO(img_data))
  (im_width, im_height) = image.size
  return np.array(image.getdata()).reshape(
      (im_height, im_width, 3)).astype(np.uint8)

from tensorflow.python.ops.numpy_ops import np_config
np_config.enable_numpy_behavior()

def detect(interpreter, input_tensor, include_keypoint=False):
  """Run detection on an input image.

  Args:
    interpreter: tf.lite.Interpreter
    input_tensor: A [1, height, width, 3] Tensor of type tf.float32.
      Note that height and width can be anything since the image will be
      immediately resized according to the needs of the model within this
      function.
    include_keypoint: True if model supports keypoints output. See
      https://cocodataset.org/#keypoints-2020

  Returns:
    A sequence containing the following output tensors:
      boxes: a numpy array of shape [N, 4]
      classes: a numpy array of shape [N]. Note that class indices are
        1-based, and match the keys in the label map.
      scores: a numpy array of shape [N] or None.  If scores=None, then
        this function assumes that the boxes to be plotted are groundtruth
        boxes and plot all boxes as black with no classes or scores.
      category_index: a dict containing category dictionaries (each holding
        category index `id` and category name `name`) keyed by category
        indices.
    If include_keypoints is True, the following are also returned:
      keypoints: (optional) a numpy array of shape [N, 17, 2] representing
        the yx-coordinates of the detection 17 COCO human keypoints
        (https://cocodataset.org/#keypoints-2020) in normalized image frame
        (i.e. [0.0, 1.0]).
      keypoint_scores: (optional) a numpy array of shape [N, 17] representing the
        keypoint prediction confidence scores.
  """
  input_details = interpreter.get_input_details()
  output_details = interpreter.get_output_details()
  input_tensor = (input_tensor*255).astype(np.uint8)
  print(input_tensor.dtype)
  interpreter.set_tensor(input_details[0]['index'], input_tensor)
  interpreter.invoke()

  scores = interpreter.get_tensor(output_details[3]['index'])
  boxes = interpreter.get_tensor(output_details[2]['index'])
  num_detections = interpreter.get_tensor(output_details[5]['index'])
  classes = interpreter.get_tensor(output_details[0]['index'])

  if include_keypoint:
    kpts_scores = interpreter.get_tensor(output_details[4]['index'])
    kpts = interpreter.get_tensor(output_details[1]['index'])
    return boxes, classes, scores, num_detections, kpts, kpts_scores
  else:
    return boxes, classes, scores, num_detections

# Utility for visualizing results
def plot_detections(image_np,
                    boxes,
                    classes,
                    scores,
                    category_index,
                    keypoints=None,
                    keypoint_scores=None,
                    figsize=(12, 16),
                    image_name=None):
  """Wrapper function to visualize detections.

  Args:
    image_np: uint8 numpy array with shape (img_height, img_width, 3)
    boxes: a numpy array of shape [N, 4]
    classes: a numpy array of shape [N]. Note that class indices are 1-based,
      and match the keys in the label map.
    scores: a numpy array of shape [N] or None.  If scores=None, then
      this function assumes that the boxes to be plotted are groundtruth
      boxes and plot all boxes as black with no classes or scores.
    category_index: a dict containing category dictionaries (each holding
      category index `id` and category name `name`) keyed by category indices.
    keypoints: (optional) a numpy array of shape [N, 17, 2] representing the
      yx-coordinates of the detection 17 COCO human keypoints
      (https://cocodataset.org/#keypoints-2020) in normalized image frame
      (i.e. [0.0, 1.0]).
    keypoint_scores: (optional) anumpy array of shape [N, 17] representing the
      keypoint prediction confidence scores.
    figsize: size for the figure.
    image_name: a name for the image file.
  """

  keypoint_edges = [(0, 1), (1, 2), (0, 3), (3, 4), (0, 5), (5, 6), (0, 7), (7, 8), (0, 9), (9, 10)]
  image_np_with_annotations = image_np.copy()
  # Only visualize objects that get a score > 0.3.
  viz_utils.visualize_boxes_and_labels_on_image_array(
      image_np_with_annotations,
      boxes,
      classes,
      scores,
      category_index,
      keypoints=keypoints,
      keypoint_scores=keypoint_scores,
      keypoint_edges=keypoint_edges,
      use_normalized_coordinates=True,
      min_score_thresh=0.2)
  if image_name:
    plt.imsave(image_name, image_np_with_annotations)
  else:
    return image_np_with_annotations

# Load the TFLite model and allocate tensors.
# model_path = "workspace/tflite/model_6_May.tflite"
model_path = "/home/ai_server/Shabbir/DISIGN/model_weights/centernet_int8_03.tflite"
label_map_path = '/home/ai_server/Shabbir/DISIGN/model_weights/label_map.pbtxt'
image_path = '/home/ai_server/Shabbir/Hand_Keypoint_Detection/test/806.jpg'
# image_path = '/home/shabbirmarfatiya/Shabbir/Project/ML_Tasks/Hand_Gesture_Recognition/Hand_Keypoint_Detection/FreiHAND_Dataset/test/'+str(dir_list[15])

# Initialize TensorFlow Lite Interpreter.object_detection.utils import label_map_util
interpreter = tf.lite.Interpreter(model_path=model_path)
interpreter.allocate_tensors()

# Label map can be used to figure out what class ID maps to what
# label. `label_map.txt` is human-readable.
# category_index = {1: {'id': 1, 'name': 'person'}}
category_index = label_map_util.create_category_index_from_labelmap(
    label_map_path)

# print(category_index)

label_id_offset = 1

image = tf.io.read_file(image_path)
image = tf.compat.v1.image.decode_jpeg(image)
image = tf.expand_dims(image, axis=0)
image_numpy = image.numpy()
print(image_numpy.shape)

input_tensor = tf.convert_to_tensor(image_numpy, dtype=tf.uint8)
# Note that CenterNet doesn't require any pre-processing except resizing to the
# input size that the TensorFlow Lite Interpreter was generated with.
input_tensor = tf.image.resize(input_tensor, (224, 224))
(boxes, classes, scores, num_detections, kpts, kpts_scores) = detect(interpreter, input_tensor,include_keypoint=True)
print("kpts:",scores[0])
print("kpts_scores:",kpts[0][0]*image_numpy.shape[1])
print("Boxes:", boxes)
print("classes:", classes)
print("num_detections:", num_detections)
# print("kpts_scores:",kpts[0][0])
vis_image = plot_detections(
    image_numpy[0],
    boxes[0],
    classes[0].astype(np.uint32) + label_id_offset,
    scores[0],
    category_index,
    keypoints=kpts[0],
    keypoint_scores=kpts_scores[0])

plt.figure(figsize = (15, 10))
plt.imshow(vis_image)

Expected Behavior:
The TensorFlow Lite INT8 model should run inference successfully without any errors.
Actual Behavior:
The RuntimeError is raised when invoking the interpreter, indicating that the tile operation is not supported in INT8 precision.
Additional Information:
I've followed the recommended steps for INT8 quantization, including setting the optimization flags, providing a representative dataset, and setting the target specs for INT8 operations. However, the issue persists.
@sushreebarsa @sachinprasadhs @mohantym  @pkarimib, Could you please assist me in resolving this issue? I would greatly appreciate any guidance or suggestions.

Hi @ShabbirMarfatiya ,
I will replicate your issue and will get back to you.

Hey @sawantkumar,
Thanks for looking into this issue. If you need any more details, feel free to let me know.

Hi @sawantkumar,
Have you happened to find anything related to my issue that might be helpful?

Hi @ShabbirMarfatiya ,
I am in the process of replicating your issue. Meanwhile did you try out with the latest tensorflow version , 2.16.1 ?

Hi @sawantkumar,
No, I didn't try that, but I'll try and let you know the outcome.

Hi @ShabbirMarfatiya ,
I see that you have already filed a bug report for this, right? Anyway , just in case can you also also provide all the other assets like model file and dataset.

Hi @sawantkumar,
I have uploaded all necessary folders and files to GDrive. Here's the link for you: https://drive.google.com/drive/folders/1Ov1qVyreDWq0q3VQbAq0BIvrxRSB4dRs?usp=sharing
If you need any more details, feel free to let me know.

Hi @ShabbirMarfatiya ,
I am getting a lot of protobuf library issues. It will take me some time to resolve and replicate your issue. I will let you know once i am done. Thank you

Hi @ShabbirMarfatiya , we're wondering if you may be able to resolve your issue by using AI-Edge-Torch, you can find more information here: googleblog.
I have actually created a simple script for converting a mobilenet model here:
import torch
import torchvision
import ai_edge_torch

mobilenet_model = torchvision.models.mobilenet_v3_small()
sample_inputs = (torch.randn(1, 3, 224, 224),)

edge_model = ai_edge_torch.convert(mobilenet_model.eval(), sample_inputs)
edge_model.export("mobilenet_v3_small.tflite")

If you want to, you can actually try visualizing the result in model-explorer as well.
Please try them out and let us know if this resolves your issue. If you still need further help, feel free to open a new issue at the respective repos.


ci: run k8s tests against the history

skip skydive-go-fmt
skip skydive-functional-tests-backend-elasticsearch
skip skydive-functional-tests-backend-orientdb
skip skydive-scale-tests
skip skydive-cdd-overview-tests
skip skydive-unit-tests
skip skydive-compile-tests
skip skydive-ppc64le-tests

run skydive-scale-tests

run skydive-k8s-tests

@hunchback It seems the object under Metadata.K8s can not be marshalled properly

run skydive-k8s-tests

Have you identified what object within Metadata.K8s does not marshel? The fix would to to handle that type within SetFieldAndNormalize()

I created PR https://github.com/skydive-project/skydive/pull/1381 which increases number of support fields allowing for this PR to pass. Note that you need to delete the content of ElasticSearch between every execution of the tests:
curl -X DELETE http://localhost:9200/_all


Update kustomize templates

This PR is created automatically!

@geeknoid @howardjohn
Is there a way to give this bot clearance for the CLA-agreement?

Side note: Install-demo fails because the make-target creates an invalid test/demo/k8s.yaml, so this failure is kind of 'intended' for this PR.

No sorry, that's against corporate policy because it could be used to subvert the CLA process and sneak in some non-CLAed changes. So PRs generated by this bot will need manual review.
Could this be run as part of the build process instead?

@geeknoid the reason we have the generated files in the repo is so users can do things like kubectl -k github.com/istio/install/... and install Istio in one command

It's fine to have the generated files checked in. But can these just be
checked in as part of a human doing a local build and commit, like we do in
the API repo?
On Wed, Jun 12, 2019 at 8:26 AM John Howard<EMAIL_ADDRESS>wrote:

@geeknoid https://github.com/geeknoid the reason we have the generated
files in the repo is so users can do things like kubectl -k
github.com/istio/install/... and install Istio in one command
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/installer/pull/235?email_source=notifications&email_token=AFNZYHJGYJHR6LDMLFCN47DP2EIR3A5CNFSM4HXHAZN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXQZZ5Q#issuecomment-501325046,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFNZYHPNN2GHNJ6EI2PREXLP2EIR3ANCNFSM4HXHAZNQ
.

How to continue with this PR? I see 4 options

To keep it a manual process to sync those files (not really an option IMHO)
Use a CI to update those files automatically (like proposed in this PR), but opens some questions with the CLA bot.
To integrate it in the build process (make), so that it is at least hard to get those files out-of-sync.
Do not checkin generated files in the first place. @howardjohn I see your use case with the one command install, but would't it be an option to generate and add those files in the release process? That sounds more natural to me.

I would prefer option 4. @howardjohn Do you think that could be an option?

Assuming generating those files isn't a terrible burden, not checking in
generated files is definitely preferable.
On Mon, Jun 17, 2019 at 7:16 AM Ralf Pannemans<EMAIL_ADDRESS>wrote:

How to continue with this PR? I see 4 options

To keep it a manual process to sync those files (not really an
option IMHO)
Use a CI to update those files automatically (like proposed in this
PR), but opens some questions with the CLA bot.
To integrate it in the build process (make), so that it is at least
hard to get those files out-of-sync.
Do not checkin generated files in the first place. @howardjohn
https://github.com/howardjohn I see your use case with the one
command install, but would't it be an option to generate and add those
files in the release process? That sounds more natural to me.

I would prefer option 4. @howardjohn https://github.com/howardjohn Do
you think that could be an option?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/installer/pull/235?email_source=notifications&email_token=AFNZYHO7OYR72QKZYTTU4STP26MCVA5CNFSM4HXHAZN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX3JXUY#issuecomment-502701011,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFNZYHNMLYKHXIJQTJT7BSTP26MCVANCNFSM4HXHAZNQ
.

@c0d1ngm0nk3y If we go for option 4 (generate the files in a release build), it would be no longer a one step installation from master. OTOH, I am not sure if we really need that option (of a one-step-installation from current master). Maybe it is even better this way, so that customers are directed to the released versions. And for developers it should be a reasonable request, that they have to generate the files by themselves first.


[Request] Callback on arrow keyPress

Hi there,
I've found a missing logic for keyboard support. Which is to have a callback every time user press arrow key and have the current date as param
thank you!

This isn't something that's currently supported, though feel free to submit a PR. If the user uses the keyboard and selects a date, a callback will be fired when the date is selected.

Something like this works, but it changes the moment onKeyDown is called (it's called at the end of the handler instead of at the beginning). The main change is that in this case onKeyDown isn't called when Enter is pressed (though that could be added back in if needed).


An error ocurred while starting the kernel

Issue Report Checklist

[x] Searched the issues page for similar reports

[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice

[x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)

[x] Could not reproduce inside jupyter qtconsole (if console-related)

[x] Tried basic troubleshooting (if a bug/error)

[x] Restarted Spyder
[x] Reset preferences with spyder --reset
[x] Reinstalled the latest version of Anaconda
[x] Tried the other applicable steps from the Troubleshooting Guide

[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
I'm trying to run a code which basically is a Pretrained CNN (VGG16 - imagenet) used for semantic segmentation using Random Forest. It pops  An error ocurred while starting the kernel . I have tried everything but no solution .
Paste Traceback/Error Below (if applicable)

An error ocurred while starting the kernel
2021󈚬󈚮 23:22:09.403494: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance‑critical operations: AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021󈚬󈚮 23:22:09.842137: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of<PHONE_NUMBER> exceeds 10% of free system memory.
2021󈚬󈚮 23:22:10.433700: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of<PHONE_NUMBER> exceeds 10% of free system memory.

 I have one question for you:
Are you able to run your code in JupyterLab or Jupyter notebook?
If not, I'd say this problem is not related to Spyder.

Hey @aeyanashraf, thanks for reporting. I have one question for you:
Are you able to run your code in JupyterLab or Jupyter notebook?
If not, I'd say this problem is not related to Spyder.

It does not run on Jupyter Notebook. Kernel keeps dying again and again. It has anything to do with the fact I have a Ryzen 3600 and not the standard Intel .

I really don't know, sorry. But since this is not an issue with Spyder, we can't help you with it here.


Refactor JS/CSS for Create Plan page

Forgot this one. Need to bootstrap the create plan page and convert its JS over to ES6.

visual inspection on stage. closing issue.


Error trying to register a loader interactively

I create a new directory, cd to it, then run the following:
$ npm install streamline streamline-runtime

><EMAIL_ADDRESS>install /Users/michael/nodetmp/tmp/node_modules/fibers
> node build.js || nodejs build.js

`darwin-x64-48` exists; testing
Binary is fine; exiting
/Users/michael/nodetmp/tmp
`--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | | +--<EMAIL_ADDRESS>  | | | +--<EMAIL_ADDRESS>  | | | +--<EMAIL_ADDRESS>  | | | | `--<EMAIL_ADDRESS>  | | | +--<EMAIL_ADDRESS>  | | | `--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | | `--<EMAIL_ADDRESS>  | | |   `--<EMAIL_ADDRESS>  | | |     `--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | | +--<EMAIL_ADDRESS>  | | | `--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | | `--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | |   `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | |   +--<EMAIL_ADDRESS>  | |   `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | `--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | +--<EMAIL_ADDRESS>  | | `--<EMAIL_ADDRESS>  | |   +--<EMAIL_ADDRESS>  | |   +--<EMAIL_ADDRESS>  | |   `--<EMAIL_ADDRESS>  | |     `--<EMAIL_ADDRESS>  | `--<EMAIL_ADDRESS>  |   `--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  | `--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>(git+https://github.com/Sage/node-source-map-support.git#ca4cf25ab660a84cbf489c73572f6451eafddc6e)
  | `--<EMAIL_ADDRESS>  |   `--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  | `--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>
npm WARN enoent ENOENT: no such file or directory, open '/Users/michael/nodetmp/tmp/package.json'
npm WARN tmp No description
npm WARN tmp No repository field.
npm WARN tmp No README data
npm WARN tmp No license field.
$ node
> require("streamline").register({})
TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.basename (path.js:1357:5)
    at coffeeExecuting (/Users/michael/git/node/session/node_modules/streamline/lib/register.js:30:24)
    at registerCoffee (/Users/michael/git/node/session/node_modules/streamline/lib/register.js:74:28)
    at Object.exports.register (/Users/michael/git/node/session/node_modules/streamline/lib/register.js:105:4)
    at repl:1:-39
    at sigintHandlersWrap (vm.js:22:35)
    at sigintHandlersWrap (vm.js:96:12)
    at ContextifyScript.Script.runInThisContext (vm.js:21:12)
    at REPLServer.defaultEval (repl.js:313:29)
TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.basename (path.js:1357:5)
    at coffeeExecuting (/Users/michael/git/node/session/node_modules/streamline/lib/register.js:30:24)
    at registerCoffee (/Users/michael/git/node/session/node_modules/streamline/lib/register.js:74:28)
    at Object.exports.register (/Users/michael/git/node/session/node_modules/streamline/lib/register.js:105:4)
    at repl:1:-39
    at sigintHandlersWrap (vm.js:22:35)
    at sigintHandlersWrap (vm.js:96:12)
    at ContextifyScript.Script.runInThisContext (vm.js:21:12)
    at REPLServer.defaultEval (repl.js:313:29)
^D
$

Then I create a file test.js containing the following:
console.log("debug1")
require("streamline").register({})
console.log("debug2")

And I run this code:
$ node test.js
debug1
debug2
$

What's going on here?  I'm actually running into this issue when I try to debug another issue with streamlined code and this is stopping me because I can't even start streamlining from the command line.
The other issue is in certain contexts when I try to require my streamlined module, I get the following error:
> var session = require("session")
TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.basename (path.js:1357:5)
    at coffeeExecuting (/Users/michael/node/node_modules/streamline/lib/register.js:30:24)
    at registerCoffee (/Users/michael/node/node_modules/streamline/lib/register.js:74:28)
    at Object.exports.register (/Users/michael/node/node_modules/streamline/lib/register.js:105:4)
    at Object.<anonymous> (/Users/michael/node/node_modules/session/index.js:1:23)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.basename (path.js:1357:5)
    at coffeeExecuting (/Users/michael/node/node_modules/streamline/lib/register.js:30:24)
    at registerCoffee (/Users/michael/node/node_modules/streamline/lib/register.js:74:28)
    at Object.exports.register (/Users/michael/node/node_modules/streamline/lib/register.js:105:4)
    at Object.<anonymous> (/Users/michael/node/node_modules/session/index.js:1:23)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)

The error occurring at /Users/michael/node/node_modules/session/index.js:1 is the same code that is erroring above when not run from a script, namely:
require("streamline").register({})

Incidentally, if I put the above code ("var session = require("session")") into another .js file and run it directly, that works too.

If I comment out streamline/lib/register.js:105, which is calling registerCoffee, (I am using Javascript, not CoffeeScript) the error goes away.

Ok, I see what is happening... line 30 is assuming that process.argv[1] is a valid string.    Not sure why this assumption is made for registering coffeescript but not javascript.

I guess this is a bit of a red herring... if I'm calling streamlined code interactively, I need to use _node, not node!

I'm only catching up now. Your conclusion is right: you should be using _node. This way you don't have to call register and you can use the _ parameter.


pre-trained model

Thank you for the excellent code that solved my problem.
Can you provide a pre-trained model on resnet with IMDB-WIKI or imagenet dataset?

Unfortunately, I don't have any pretrained model at this moment.


comfyui object load failure message

Add a message when the comfyui window does not reload automatically.

Hmm doesn't seem to work when it needs to.

not merged?

nah, doesn't seem to work when it needs to.


RxTableViewSectionedAnimatedDataSource does not set sections after first event if tableView.window == nil

Hi,
i've encountered the following in RxTableViewSectionedAnimatedDataSource
I've got an UIViewController that is part of a UITabBarController, that VC is not being shown when the app starts up, but the UITabBarcontroller does, create the UIViewController.
In that UIViewController there is a UITableView which binds to events.
When the dataSource receives the very first event; the tableView is updated with the very first event;
The code in RxTableViewSectionedAnimatedDataSource.swift:35 is being executed.
Now when the second event arrives (and yes, the VC is still not visible, tableView.window == nil) it just calls tableView.reloadData() and returns (RxTableViewSectionedAnimatedDataSource.swift:43) it does not set the new event and so when I select the tab and the VC is shown on screen I see only the tableView populated with the very first event.
I've now fixed it myself by setting the sections when the tableView.window == nil;
if tableView.window == nil {
    dataSource.setSections(newSections)
    tableView.reloadData()
    return
}

Is this the proper approach? Or should I signal the VC to only pass on events if the VC is actually visible on screen?

Never mind, I see this was already fixed in https://github.com/RxSwiftCommunity/RxDataSources/issues/94


Update Readme  AudioWaveBar heightFactor

AudioWaveBar height -> heightFactor

AudioWaveBar height -> heightFactor

Can you please update the README also? Thank you :)

welcome


[Docs] Online Boutique sample app link not working.

Current State

As you can see in the below image a link for the online boutique sample app is present.
link is not present in the correct form, moreover when clicked it does not show anything just the screen gets blurry.

Desired State

fix the presentation of the link.
fix the destination of the link.

Contributor Guides and Resources

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@shubham-tyagi , The image has been referenced from here and has '.PNG' extension. Changing it to '.png' should fix the issue.

Thanks for the suggestion, will do that @Zain-Muiz.


Fix package layout on windows [WIP]

This should fix the issue with weird package layout on windows after merging #38

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

thanks!


Last event not updating

Stopped working after recent core update, and only updates after either a restart or reloading integration.
Or, am I being thick? lol
Using camera.name and tried camera.event but that works intermittently, usually just an empty card.

+1

My issue might be related?
Motion ~16:30 seen by HA ~17:02
Motion detection Type changed to Person only ~17:07 seen by HA ~17:16
Running HA Core 2023.8.4

no, that would be normal. As soon as I restart the websoket, I see the last event displayed. After that, nothing changes in the status.Home Assistant 2023.9.3Supervisor 2023.09.2Operating System 10.5Frontend 20230911.0 - latestMit freundlichen GrüßenChristian HuhnVon meinem iPhone gesendetAm 04.10.2023 um 17:34 schrieb rogerthn2019 @.***>:
My issue might be related?
Motion ~16:30 seen by HA ~17:02
Motion detection Type changed to Person only ~17:07 seen by HA ~17:16
Running HA Core 2023.8.4
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

have the same issue

Same here, on a clean installation. Which is probably why the developers don't experience the same issue...
Every time I reboot the whole VM containing HA the image updates to the last time my doorbell was rang. It so far never updated when it should.

did you configure all motion notifications with picture using mobile app? event image will be updated based on incoming push notifications, there is no other way around.

BTW, I have a development environment which I setup every time on a clean installation and I am not facing this issue there too. Please do not make premature conclusions/assumptions.

did you configure all motion notifications with picture using mobile app? event image will be updated based on incoming push notifications, there is no other way around.

You mean the Eufy app itself, or?

quoting: https://github.com/fuatakgun/eufy_security#how-is-this-working
As we already called out earlier, add-on heavily relies on push notifications, so you must enable all kind of push notifications (motion detected, person detected, lock events, alarm events etc) in your mobile app. These notifications are not user based but device based so after enabling all these notifications, your main account will probably bloated with many push notifications. In android, there is a setting to disable specific notifications, please use it.

BTW, I have a development environment which I setup every time on a clean installation and I am not facing this issue there too. Please do not make premature conclusions/assumptions.

I stand corrected... my appologies.

yes

I actually need to check that...

you can also enable debug logs following bug template/readme and generate a motion event and validate that you are receiving the motion event on home assistant. Through the logs, I can see what is happening on logs

Interesting. I tested that before and it did not matter. Now there have been some updates on HA and on the intergations it seems to be working, but I was only able to test motion detection right now. I am currently not at home. I will try and ring the doorbell once I am and see if the image is updated.

By absolute chance a delivery driver tried to drop something off, which confirmed the doorbell ringing actually updated that picture. Interesting... I am 100% sure I did test this all before and it refused to update...

So, it is all working?

For me, yes. Finally 💯

Thanks for update, will have a look at this tomorrow.


-- Could NOT find Vulkan (missing: VULKAN_LIBRARY VULKAN_INCLUDE_DIR)

I am installing glfw on macOS 10.12.6 and I need to install Vulkan following with the installation on your website. But I encounter such problem and could not find a solution so how can I set the variables so that these two missing variables can be fixed?

Can you elaborate? My examples don't use glfw.

@SaschaWillems Sorry. The problem is that I have not correctly install vulkan through source code so that when glfw try to retrieve these two variables it can not find. I had installed vulkan by following the guide of your website, then I don't know what is the problem then?

My examples (this is not an official Vulkan repo!) take these from either an installed Vulkan SDK (if VULKAN_SDK environment variable is set), or (if this is not present) from the local paths of the examples.
How are you trying to build and when does the error occur? Are you using a current CMake version to generate the build files?

Yes, I am using the current CMake version.

Then you have to set these manually. VULKAN_LIBRARY needs to point to the vulkan library file for your platform, which is included in the SDK (and not in my examples for osx), VULKAN_INCLUDE_DIR needs to point to the include directory that contains vulkan.h.

For macOS platform, which library file should VULKAN_LIBRARY to point to or just point to the folder lib in macOS?

I don't own any Apple devices so I haven't tested myself, but I guess you've got a library folder with a vulkan-1.lib somewhere in the SDK. The VULKAN_LIBRARY path needs to point to that directory.

I find .dylib file and I think that it is. Thank you.

Hi all! What I did to successfully install vulkan on a mac was to tinker a bit with the install_vulkan.py file. Basically what is does is that it reads a JSON list of files and directories and their intended destination in your local system, and then copies them (or creates a link to the original files) accordingly. For me, the missing Vulkan_LIBRARY Vulkan_INCLUDE_DIR error was occurring because I had not run the install_vulkan.py file I mentioned above. But when I ran it out of the box, it would always return errors. So I discovered it was simply because it was not reading the directory for the INSTALL_BOM.json file and then of the files to be installed correctly.
So first, I used the --install-json-location argument when calling the installation script; second, I included a new line in the python script with the actual base folder of where the VulkanSDK was downloaded, as below:
 base_folder = "/Users/yourusernamehere/Coding/VulkanSDK"
And finally, I changed the following code line (the commented one is the original, my adjustment is the uncommented one):
        abspath_key = base_folder + key[1:]```

Then it worked like a charm. Hope the above can be helpful to you as well.

hi!
i have vulkan installed on raspberry pi 4 (Raspbian Bullseye):

how to taste your examples as i see trying to build ?:

i tried export paths:
export Vulkan_LIBRARY="/usr/lib/aarch64-linux-gnu/libvulkan.so.1"
export Vulkan_INCLUDE_DIR="/home/pi/mesa_vulkan/include/vulkan"
may be wrong way?

Your output is missing the actual lubvulkan.so:

built from source.

dont think so.
may be my exports wrong ?
export Vulkan_LIBRARY="/usr/lib/aarch64-linux-gnu/libvulkan.so.1"
export Vulkan_INCLUDE_DIR="/home/pi/mesa_vulkan/include/vulkan"

I don't have that much experience with Linux, but I guess the issue is the .1. Try to rename it to libvulkan.so?

didnt help ((
at the same time i built examples https://github.com/KhronosGroup/Vulkan-Samples/blob/main/docs/build.adoc#linux :

The Khronos samples use a different build setup. But if those works, go ahead and use those instead.


How to drag a button without calling button action?

When i stop drag a button, the button's action will called, i tryed this:
[self.roundButtonShadowView setDraggingStartedBlock:^(UIView *view) {         @strongify(self)         self.roundButton.userInteractionEnabled = NO;     }];     [self.roundButtonShadowView setDraggingEndedBlock:^(UIView *view) {         @strongify(self)         self.roundButton.userInteractionEnabled = YES;     }];
but now worked, the button's action is still be called...
Sorry for my bad English.

Hey @zkfpk6
try to call touchesCancelled on your button in the drag start.

Hey @zkfpk6
try to call touchesCancelled on your button in the drag start.

thank you, i already fix this, just use UITapGestureRecognizer instead of UIButton, works perfect.

Great


SmartGameBooster.SmartGameBooster version 5.2.0

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@mstfbot Please hold this pull till someone approves it

@OfficialEsco  Please approve my changes

Thank you for correcting me🙏🙏🙏

Can anyone review my changes??


Error executing a plan

Hi,
I'm trying to run a plan generated by a planner outside plansys2, but I always get the same error:
[ERROR] [executor_node-4]: process has died [pid 2604, exit code -11, cmd '/opt/ros/humble/lib/plansys2_executor/executor_node --ros-args -r __node:=executor -r __ns: =/ --params-file /tmp/launch_params_y660_zry --params-file /opt/ros/humble/share/plansys2_bringup/params/plansys2_params.yaml'].
There are no problems with domain files or setting up instances from the terminal. The very strange thing is that by trying to run the run plan-file  command several times, there are cases in which the execution starts and is successful. What can I do to solve this problem?

Hi @MatteoLupinacci
May you give me more details to reproduce this problem (distro, domain, problem,...)?

Thanks for the reply. As you can see from the error code I'm using ros humble.
ros2_ws.zip
This is the workspace containing all files. In the launch folder there is the file with the commands to give to the plansys2 terminal in order to setting up the instances. The plan.txt file contains the plan, while the domain file is located in the pddl folder. I'm using

run plan-file plan.txt
in the plansys2 terminal to run the plan.

Hi @MatteoLupinacci
I have found your problem. In all your ids in the domain, change - by _
It seems that there is a bug that considers, for example, is-free an arithmetic expression is minus free.
Best
Francisco

Thanks, it works well now.


adding cleansing prior each application test

Linked to issue #161
The purpose is to clean applications from applications.spec.ts at the beginning of each test.
I assumed we will use all the time "tesapp" as based.
If we want generic, it needs to be further implemented

It could be useful to also check/remove configuration01 (custom configuration name we use) and mynamespace (custom namespace we use).

It could be useful to also check/remove configuration01 (custom configuration name we use) and mynamespace (custom namespace we use).

I added cleanse of configuration as well on applications.spec.ts. I wonder if this cleanse should be added as well to with_default_options.spec.ts. If this is the case, perhaps the cleanse mechanism should be added in tests.ts instead of within the integration folder.
When I added cleanse for namespaces I was not able to re-run the test without manually adding them. Also I had issues removing the configuration if namespace was mynamespace instead of workspace.


Expand the Sizing Utility to allow for responsive breakpoints like "w-xl-50" (css, feature, v4)

Currently, the Sizing utility (https://getbootstrap.com/docs/4.1/utilities/sizing/) only allows for the sizing of the height or width of an element without regard to the viewport size.
So for instance the "w-50" class makes a lot of sense on a large device in order to limit the width of, for instance, a help text, but not so much on a small device.
This could be resolved by adding breakpoints to the utility in the same way as it is done for the Spacing utility:

w-lg-25 (width: 25% only on large+ devices)
w-md-50 (width: 50% only on large+ devices)
w-sm-75 (...)
w-100 (would be like w-xs-100)

This enhancement would not change existing usage, but would allow more flexibility for various device sizes.
Summary: Add support for the following classes:
w-sm-100, w-sm-75, w-sm-50 and w-sm-25
w-md-100, w-md-75, w-md-50 and w-md-25
w-lg-100, w-lg-75, w-lg-50 and w-lg-25
w-xl-100, w-xl-75, w-xl-50 and w-xl-25
h-sm-100, h-sm-75, h-sm-50 and h-sm-25
h-md-100, h-md-75, h-md-50 and h-md-25
h-lg-100, h-lg-75, h-lg-50 and h-lg-25
h-xl-100, h-xl-75, h-xl-50 and h-xl-25

Why can't I see and add labels to this issue?

this pull request fixes this issue https://github.com/twbs/bootstrap/pull/21975

We'll pass on this for now, thanks though.

Why can't I see and add labels to this issue?

Only project members of the repository's organization have access to set these.

I was also looking for this when I first came across the sizing utilities and was disappointed that it didn't exist. Is there a good reason why there are breakpoints for things like spacing, but not this?

+1 I have lots of this class in bootstrap3. For example on Media object I have 60px image on xs viewport and 80px on larger screens.
Now with bootstrap i can just add
$sizes: (
  25: 25%,
  50: 50%,
  75: 75%,
  100: 100%,
  60px: 60px,
  80px: 80px,
  100px: 100px
);

And get all this classes.
@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
    @each $prop, $abbrev in (width: w, height: h) {
      @each $size, $length in $sizes {
        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
      }
    }
  }
}

Please this should be a feature it makes my sizing looks dump with viewport
Thanks

I support the idea.
And already did in my custom css classes with the same names as in first post.
I use it with forms customization. Forms like "Enter your name... Enter your E-mail..." look good with w-100 on mobile devices, but too wide on PC.

I would like this to be a part of bootstrap

it Would be quite useful to have that feature

Yes I just ran across a need for this.

+1 support

I would appreciate this being added please

+1 support <3

+1

Just another +1 for interest in having this functionality in bootstrap.

I run into this limitation repeatedly, and just have again, so another +1

+1
@mdo Frustrated to see the feature denied with no justification.

I'm interested in this new feature 👍 +1

Pls

Very interested. It's just a really basic, missing feature... I assumed it was already there. +1

I would like this to be a part of bootstrap please.

this should definitely be a part of bootstrap, specifically for when you are sizing something say fifty percent view port width wide, say with a card so you can have a card-card side by side, but on a smaller screen you want it to be full view port width.  i realize that you could add some grid sizing and get the same thing in theory, but this concept just makes since and falls in line with the bootstrap theme of breakpoints and view sizes being added in the classes.

Well I had to serve myself on this one with plain css. I also added some more like width/height-20,40,60 and 80 to account for multiples of 4. If you have a better solution than this, please share:
`.w-100 {width: 100% !important;}
.w-80 {width: 80% !important;}
.w-75 {width: 75% !important;}
.w-60 {width: 60% !important;}
.w-50 {width: 50% !important;}
.w-40 {width: 40% !important;}
.w-25 {width: 25% !important;}
.w-20 {width: 20% !important;}
@media (min-width:576px) {
.w-sm-100 {width: 100% !important;}
.w-sm-80 {width: 80% !important;}
.w-sm-75 {width: 75% !important;}
.w-sm-60 {width: 60% !important;}
.w-sm-50 {width: 50% !important;}
.w-sm-40 {width: 40% !important;}
.w-sm-25 {width: 25% !important;}
.w-sm-20 {width: 20% !important;}
}
@media (min-width:768px) {
.w-md-100 {width: 100% !important;}
.w-md-80 {width: 80% !important;}
.w-md-75 {width: 75% !important;}
.w-md-60 {width: 60% !important;}
.w-md-50 {width: 50% !important;}
.w-md-40 {width: 40% !important;}
.w-md-25 {width: 25% !important;}
.w-md-20 {width: 20% !important;}
}
@media (min-width:992px) {
.w-lg-100 {width: 100% !important;}
.w-lg-80 {width: 80% !important;}
.w-lg-75 {width: 75% !important;}
.w-lg-60 {width: 60% !important;}
.w-lg-50 {width: 50% !important;}
.w-lg-40 {width: 40% !important;}
.w-lg-25 {width: 25% !important;}
.w-lg-20 {width: 20% !important;}
}
@media (min-width:1200px) {
.w-xl-100 {width: 100% !important;}
.w-xl-80 {width: 80% !important;}
.w-xl-75 {width: 75% !important;}
.w-xl-60 {width: 60% !important;}
.w-xl-50 {width: 50% !important;}
.w-xl-40 {width: 40% !important;}
.w-xl-25 {width: 25% !important;}
.w-xl-20 {width: 20% !important;}
}`

I fixed my situation by wrapping in some col divs
Instead of an element with a class="etcetc... w-100 w-md-50"
I wrapped in a
Worked fine, but I still think there should be that option, it makes
sense...
On Jul 25, 2018 9:08 AM, "wilbertcaba"<EMAIL_ADDRESS>wrote:
Well I had to serve myself on this one with plain css. I also added some
more like width/height-20,40,60 and 80 to account for multiples of 4. If
you have a better solution than this, please share:
`.w-100 {width: 100% !important;}
.w-80 {width: 80% !important;}
.w-75 {width: 75% !important;}
.w-60 {width: 60% !important;}
.w-50 {width: 50% !important;}
.w-40 {width: 40% !important;}
.w-25 {width: 25% !important;}
.w-20 {width: 20% !important;}
@media https://github.com/media (min-width:576px) {
.w-sm-100 {width: 100% !important;}
.w-sm-80 {width: 80% !important;}
.w-sm-75 {width: 75% !important;}
.w-sm-60 {width: 60% !important;}
.w-sm-50 {width: 50% !important;}
.w-sm-40 {width: 40% !important;}
.w-sm-25 {width: 25% !important;}
.w-sm-20 {width: 20% !important;}
}
@media https://github.com/media (min-width:768px) {
.w-md-100 {width: 100% !important;}
.w-md-80 {width: 80% !important;}
.w-md-75 {width: 75% !important;}
.w-md-60 {width: 60% !important;}
.w-md-50 {width: 50% !important;}
.w-md-40 {width: 40% !important;}
.w-md-25 {width: 25% !important;}
.w-md-20 {width: 20% !important;}
}
@media https://github.com/media (min-width:992px) {
.w-lg-100 {width: 100% !important;}
.w-lg-80 {width: 80% !important;}
.w-lg-75 {width: 75% !important;}
.w-lg-60 {width: 60% !important;}
.w-lg-50 {width: 50% !important;}
.w-lg-40 {width: 40% !important;}
.w-lg-25 {width: 25% !important;}
.w-lg-20 {width: 20% !important;}
}
@media https://github.com/media (min-width:1200px) {
.w-xl-100 {width: 100% !important;}
.w-xl-80 {width: 80% !important;}
.w-xl-75 {width: 75% !important;}
.w-xl-60 {width: 60% !important;}
.w-xl-50 {width: 50% !important;}
.w-xl-40 {width: 40% !important;}
.w-xl-25 {width: 25% !important;}
.w-xl-20 {width: 20% !important;}
}`
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/twbs/bootstrap/issues/21943#issuecomment-407765892,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJ0Vcny-7CS2Z2KaoClAxR4G1pEq_f6iks5uKHv4gaJpZM4L64U8
.

@mdo This utility serves zero effective purpose in a responsive framework if its not responsive. If, as you say, bloat is your primary concern here, why would you bother including the utility at all when it's application is so limited?

I recently had a "shower thought" (yes, I know it's pretty sad thinking about Bootstrap in the shower) about how on forms, the inputs default to the width of their parent element - it would be great if the width utilities were responsive so say a form that uses two .col-md-6 for a two-column layout could specify that the form inputs inside only take up 50% of the parent's width at -lg or -xl breakpoints, but default to 100% on -md or smaller.
I echo @dpatey and others' sentiment that a utility should be responsive in a primarily responsive framework. I get the caution about bloating the CSS, but on the other side of the coin our code becomes bloated and needlessly complex by having to use multiple elements/utilities to achieve basic effects (e.g., using an inner .col- to provide the responsiveness).

Please add this feature to the bootstrap core.

please add this feature

Please add this. I have just started using Bootstrap and this feature is one of the first thing I am missing.

Would love to see this feature as well.

I also needed it in quite a few cases and I had to find all kind of custom, but unwelcomed solutions. It would be so nice to have it in the default functionality, just like the paddings and margins.
That would add even more to BS greatness!

+1 for this feature

Also +1

Unless I've misunderstood something then I don't know why it was declined. If I have a h-100 to align full screen centered and my content is taller than the screen on small mobiles then it behaves undesirably.
The logo is pushing off the top of the screen and the content off the bottom but I cannot scroll to see it.
css
    height: 100%;
}```

html
```

Coming Soon

some content

some content

some content

some content

some content

some content

some content

```

It wasn't declined for technical reasons. The benefits of this enhancement request are well known (I think).
The reason simply is that it would increase the size of the library and according to the maintainers, there's not enough demand to justify this increase.

I see. I just started to upgrade my skills to BS4 with a "simple" holding page and thought I would align it in the middle. An hour and a half later I'm still reading things trying to figure out how to make it usable, so I guess I'm skewed over the importance of this right now

Ah yes @matthiku it looks like mdo has already said as much, I missed it in amongst the list of +1's

mdo: As far as feature requests go, I didn't say you didn't need it—only that we weren't going to do it right now. Adding this means adding 20 classes total. Each new utility balloons our CSS just a little bit more, so I'm always very cautious against adding more of them.

found this topic, i also have the same problem, i would like to have this feature too.

Yes, please add this feature. It would be a logical upgrade to add screen sizes same as we do for as other properties.

ETA for this feature !!

I would accept a little bloat to make the h-* and w-* classes a little more useful. Until then, thanks @madmax for providing a nice solution.

@mdo Why not remove the sizing utility in it's entirety if saving from "bloat" is the end goal? The utility class is almost entirely useless without these breakpoints.

+1 for this

+1

I recently had a "shower thought" (yes, I know it's pretty sad thinking about Bootstrap in the shower) about how on forms, the inputs default to the width of their parent element - it would be great if the width utilities were responsive so say a form that uses two .col-md-6 for a two-column layout could specify that the form inputs inside only take up 50% of the parent's width at -lg or -xl breakpoints, but default to 100% on -md or smaller.
I echo @dpatey and others' sentiment that a utility should be responsive in a primarily responsive framework. I get the caution about bloating the CSS, but on the other side of the coin our code becomes bloated and needlessly complex by having to use multiple elements/utilities to achieve basic effects (e.g., using an inner .col- to provide the responsiveness).

Thanks man! This solved my issue on the supposed breakpoints for w-spacing. I just added this to my code and it worked just fine.
But I agree that adding the w-breakpoint-spacing should be considered.

+1. Came back here two years later. Disappointed it's not there. Please add this, it's such a natural fit. Code bloat is worse than 20 classes in css.  Website icons, text and photos weigh so much more than bootstrap, and most of us pull bootstrap from a CDN, cache it or pack it in web apps. @madmax solution is perfect and should be in there, we use it in production.

I came here looking for this feature too.

I am also looking for this.  Please add this feature.

+1. very important/basic feature. I also thought this was included until today.

+1 Essential feature. Could you please add it? thx

+1 for this feature. In my opinion: very important/basic. Make the helpers useful enough (again).

+1 i need this feature

+1

Adding my +1 for this.

+1 too! I think its very necessary

This is by far the most liked and most commented-on (closed) feature request for v4 - i think it's time that the maintainers of this project should re-open this issue again!

Possibly even having the classes disabled by default, so bootstrap won't be bloated, and enabled by a variable like background gradient is.

+1

Always happy to revisit closed issues—I've missed the bulk of the follow-up here as I tend to ignore closed issues past a certain date. Regardless, decisions can always be changed :).
I'd like to better understand the use cases here though. Here's what I've seen mentioned thus far:

Single-element sizing vs requiring a parent column.
We can responsively set margin/padding, so why not dimensions?
Handling custom card layouts is cumbersome right now.

For what it's worth, I've bucketed all the "why not?", "please add", or "lol this is easy just do it" comments into implicit "yes, please add" votes. Most of those comments don't add any value here to the discussion of the usage of these proposed classes.
Please let me know if I've missed any other use cases.
My issue all along has been file size, yes—adding is easy, removing is difficult. But it's also been about the overlap with column classes when it comes to width utilities. Ideally these classes could largely be the same, but alas, I never found a viable way to do it without upending something else in the project.
We've tried to close the door on adding new features to v4 in favor of focusing on a smaller v5 update. However, we could sneak this in as a bug fix into v4.3.2 though and just say that we've missed these classes by accident. :grin: (Gotta follow semantic versioning!)
Thoughts from @twbs/team? This is a far more requested feature than I remembered and we have v4.3.2 already slated.

We got to be careful not to add to many ways to set widths, but it looks like a lot of people are looking for a solution here. I guess if we provide an opt-in solution, this could be interesting for those who are in need for something like this.
I've thought about the generation of utility classes before and opened a discussion here how we should approach them in v5: https://github.com/twbs/bootstrap/issues/28367
In the v4-dev-mc-poc-property-utilities branch (don't use it yet, it's very unstable) I experimented a bit and for this case I have the following map which generates the width utilities:
https://github.com/twbs/bootstrap/blob/c13936e450e767a2a3859f874ae8ec278a5ff10a/scss/_property-utilities.scss#L126-L136
If you want to enable the responsive classes you could just set this in your custom configuration:
$width-utilities: (responsive: true);

Always happy to revisit closed issues—I've missed the bulk of the follow-up here as I tend to ignore closed issues past a certain date. Regardless, decisions can always be changed :).
I'd like to better understand the use cases here though. Here's what I've seen mentioned thus far:

Single-element sizing vs requiring a parent column.
We can responsively set margin/padding, so why not dimensions?
Handling custom card layouts is cumbersome right now.

For what it's worth, I've bucketed all the "why not?", "please add", or "lol this is easy just do it" comments into implicit "yes, please add" votes. Most of those comments don't add any value here to the discussion of the usage of these proposed classes.
Please let me know if I've missed any other use cases.
My issue all along has been file size, yes—adding is easy, removing is difficult. But it's also been about the overlap with column classes when it comes to width utilities. Ideally these classes could largely be the same, but alas, I never found a viable way to do it without upending something else in the project.
We've tried to close the door on adding new features to v4 in favor of focusing on a smaller v5 update. However, we could sneak this in as a bug fix into v4.3.2 though and just say that we've missed these classes by accident. 😁 (Gotta follow semantic versioning!)
Thoughts from @twbs/team? This is a far more requested feature than I remembered and we have v4.3.2 already slated.

Yeah, I understand you. A lot of people are complaining that bootstrap is too heavy. So file size is priority.
I used to want expand width like w-lg-50 for desktop and w-100 for mobile, then I found I can use col-lg-6 to achieve that.

@ShawLocke in our case, the issue we face is the elasticity of a column is not always desired. Ex: sidebars or column for labels on some forms. So this col-lg-6 approach causes elasticity that is weird for some columns that work best in fixed widths (think photoshop sidebars for example) that we need to dock to the left or right (for example) and want the main area to grow accordingly. Doing this without sizing classes is difficult.

+1

+1

+1

#28523
Or css
`
@media (min-width: 576px) {
.w-sm-25 {
width: 25% !important;
}
.w-sm-50 {
width: 50% !important;
}
.w-sm-75 {
width: 75% !important;
}
.w-sm-100 {
width: 100% !important;
}
.w-sm-auto {
width: auto !important;
}
.h-sm-25 {
height: 25% !important;
}
.h-sm-50 {
height: 50% !important;
}
.h-sm-75 {
height: 75% !important;
}
.h-sm-100 {
height: 100% !important;
}
.h-sm-auto {
height: auto !important;
}
}
@media (min-width: 768px) {
.w-md-25 {
width: 25% !important;
}
.w-md-50 {
width: 50% !important;
}
.w-md-75 {
width: 75% !important;
}
.w-md-100 {
width: 100% !important;
}
.w-md-auto {
width: auto !important;
}
.h-md-25 {
height: 25% !important;
}
.h-md-50 {
height: 50% !important;
}
.h-md-75 {
height: 75% !important;
}
.h-md-100 {
height: 100% !important;
}
.h-md-auto {
height: auto !important;
}
}
@media (min-width: 992px) {
.w-lg-25 {
width: 25% !important;
}
.w-lg-50 {
width: 50% !important;
}
.w-lg-75 {
width: 75% !important;
}
.w-lg-100 {
width: 100% !important;
}
.w-lg-auto {
width: auto !important;
}
.h-lg-25 {
height: 25% !important;
}
.h-lg-50 {
height: 50% !important;
}
.h-lg-75 {
height: 75% !important;
}
.h-lg-100 {
height: 100% !important;
}
.h-lg-auto {
height: auto !important;
}
}
@media (min-width: 1200px) {
.w-xl-25 {
width: 25% !important;
}
.w-xl-50 {
width: 50% !important;
}
.w-xl-75 {
width: 75% !important;
}
.w-xl-100 {
width: 100% !important;
}
.w-xl-auto {
width: auto !important;
}
.h-xl-25 {
height: 25% !important;
}
.h-xl-50 {
height: 50% !important;
}
.h-xl-75 {
height: 75% !important;
}
.h-xl-100 {
height: 100% !important;
}
.h-xl-auto {
height: auto !important;
}
}`

+1
Thanks for your reconsideration about this feature. I'm already using replacement classes for this, and adding it to Bootstrap will ensure I don't have to declare it for every project.

+1
For now, we can use col-lg-6, col-sm-12 I suppose

+1   We need it!

+1
I need this for buttons, for now im using cols but would like to reserve that to real columns.

👍

+1

Agree that this would be perfect for opt-in as part of Options eg.
$enable-sizing-breakpoints: false!default;

Avoids extra overhead for those that don't need it.
Saves people having to create their own version.
Follows the existing pattern for _spacing.scss.

+1

I would use this so often if Bootstrap had it... Just another reason why I use Tailwind when I have a choice.

+1 , please add

I support the idea.
And already did in my custom css classes with the same names as in first post.
I use it with forms customization. Forms like "Enter your name... Enter your E-mail..." look good with w-100 on mobile devices, but too wide on PC.

I also would like to use it while styling form/inputs.

I would use this so often if Bootstrap had it... Just another reason why I use Tailwind when I have a choice.

why would you use bootstrap at all if you know about tailwind? o_O is infinitely times better

I support the idea.
And already did in my custom css classes with the same names as in first post.
I use it with forms customization. Forms like "Enter your name... Enter your E-mail..." look good with w-100 on mobile devices, but too wide on PC.

I also would like to use it while styling form/inputs.

I did this solution to be able to style my forms according to the screens.
w-sm-100 to be able to set my button to 100% on mobile and leave by default on larger screens
@import "../../node_modules/bootstrap/scss/mixins/_breakpoints.scss";

$sizes: (
  25: 25%,
  50: 50%,
  75: 75%,
  100: 100%,
);

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-down($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    @each $prop, $abbrev in (width: w, height: h) {
      @each $size, $length in $sizes {
        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
      }
    }

  }
}

Otherwise, just change  media-breakpoint-down / media-breakpoint-up / media-breakpoint-only

+1 I needed this

Come on @mdo, you're killing us here!

Kind of surprise bootstrap didn't have this while so many cool features

+1 on this!

+1

@mdo can you please re-open?

+1

+1 Got here looking for responsive width classes to allow nav link URLs to be declared only once for both, portable and standard viewports.
The portable menu is to be w25x4. The standard a flexbox with various widths depending on nav menu label. I'm still looking for a way to do this without. So far haven't found a way to achieve this without using completely separate code for both menus, which might be a maintenance issue some day.

+1

This should be a MUST for BS4

Please make this feature available.
I'd would like to make my search box 100 % width while on mobile view, and width auto and inline block on tablet or desktop.

3 years and nothing happened... Sad...

@mdo, you passed on this on Mar 20, 2017. close to three years ago, there is so much interest.  Please Please add it, It would be much appreciated by so many people including my self.

@media (min-width: 768px) {
.w-md-100 {
width: 100% !important;
}
}

Please add this feature.

I love BS4 which has greatly improved the way I work.
But the class w-25, 50, 75 is nonsense if we can not adapt it according to the breakpoint.
Please add this functionality, despite some additional lines of code!

I came looking for this feature when wanting to stretch 100% a form button on sm and xs,

I would like this to be a part of bootstrap... in XL screen my w-25 is perfect but it's too small on SM...

This is a must have I would say, why is this issue closed, I cannot find any arguments for the closing.

@eduarddrenth back in January 2018, @mdo said:
"As far as feature requests go, I didn't say you didn't need it—only that we weren't going to do it right now. Adding this means adding 20 classes total. Each new utility balloons our CSS just a little bit more, so I'm always very cautious against adding more of them."

Thanks, so impact is the reason, fair enough. As an alternative I use the grid system with some adaptations in padding and the like.

As an example, I use this for placing a 75% box in the middle of the "login" screen.
At MD and above, that box reduces to 25% wide.

It's a simple use case.  No doubt it can be done in other ways, but so so simple this way...
I understand the reasoning for it not dropping into the core, but it does seem a shame to have something useful that does not make full use of its potential.

@gburton Very nicely and politely written without any offense.

+1

+1

@mdo Tailwind CSS supports this with selectors like lg:w-32 - I understand the point you made in 2018 that this simple addition would balloon the CSS with 20 more selectors but then CSS purists would argue that frameworks like Bootstrap and Tailwind are one big balloon anyway. We've come this far, it seems like 20 extra selectors is a small price to pay for consistency with Float, Spacing, Text and all of the other Utilities that already support breakpoints.
Please reconsider adding this!

I have created a simple Media queries css sheet for applying different width sizes at different screen resoultion based on Bootstrap. So anyone can test and see if w-sm-50 and w-xl-75 both are working on same class or not.
The only disadvantage is that if you want to specify the property w-md-50, it will work only on md not on xl or lg.
So in order to make it work for devices greater than md.
You have to do like this:  w-xl-50 w-lg-50 w-md-50.
here is the link of stylesheet:
<link rel="stylesheet" href="https://drive.google.com/uc?id=1jLrfISsLUcRiwgNl0koSfsS6lylj0E7h">
Live example
here is the link of jsfiddle:  https://jsfiddle.net/bvo86qp4/2/

Why is this still not added? This is my most missed feature in Bootstrap.

+1

This can be easily activated in V5 simply by adding this to your variables file:
$utilities: (
  "width": (
    property: width,
    responsive: true,
    class: w,
    values: (
      25: 25%,
      50: 50%,
      75: 75%,
      100: 100%,
      auto: auto
    )
  ),
  "height": (
    property: height,
    responsive: true,
    class: h,
    values: (
      25: 25%,
      50: 50%,
      75: 75%,
      100: 100%,
      auto: auto
    )
  ),
);

What would be great is a setting boolean setting to activate the responsive setting without needing to overite the utility.
The developers at bootstrap have done a great job by adding the API to simply build the classes you need.

Nice...

Very much needed feature please add it soon.

I hope the production version of BS5 ship these.

add this to your css:
/* Small devices (landscape phones, 576px and up)*/
@media (min-width: 576px) {
.w-sm-100 {
width:100%!important;
}
.w-sm-75 {
width:75%!important;
}
.w-sm-50 {
width:50%!important;
}
.w-sm-25 {
width:25%!important;
}
.h-sm-100 {
height:100%!important;
}
.h-sm-75 {
height:75%!important;
}
.h-sm-50 {
height:50%!important;
}
.h-sm-25 {
height:25%!important;
}
}
/* Medium devices (tablets, 768px and up)*/
@media (min-width: 768px) {
.w-md-100 {
width:100%!important;
}
.w-md-75 {
width:75%!important;
}
.w-md-50 {
width:50%!important;
}
.w-md-25 {
width:25%!important;
}
.h-md-100 {
height:100%!important;
}
.h-md-75 {
height:75%!important;
}
.h-md-50 {
height:50%!important;
}
.h-md-25 {
height:25%!important;
}
}
/* Large devices (desktops, 992px and up)*/
@media (min-width: 992px) {
.w-lg-100 {
width:100%!important;
}
.w-lg-75 {
width:75%!important;
}
.w-lg-50 {
width:50%!important;
}
.w-lg-25 {
width:25%!important;
}
.h-lg-100 {
height:100%!important;
}
.h-lg-75 {
height:75%!important;
}
.h-lg-50 {
height:50%!important;
}
.h-lg-25 {
height:25%!important;
}
}
/* Extra large devices (large desktops, 1200px and up)*/
@media (min-width: 1200px) {
.w-xl-100 {
width:100%!important;
}
.w-xl-75 {
width:75%!important;
}
.w-xl-50 {
width:50%!important;
}
.w-xl-25 {
width:25%!important;
}
.h-xl-100 {
height:100%!important;
}
.h-xl-75 {
height:75%!important;
}
.h-xl-50 {
height:50%!important;
}
.h-xl-25 {
height:25%!important;
}
}

If we included this in v4.6.0, and had no plans to support it in v5, would people be opposed? In v5, our column classes are grid agnostic, meaning they can be used for sizing anything, so these utilities would be superfluous.
In a v4.6.0 world, we could do .w-md-50 etc, and in v5, we'd have .col-6. Is that a manageable transition for folks?

 This is the .scss code you will need to achieve this requirement
`@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@each $prop, $abbrev in (width: w, height: h) {
  @each $size, $length in $sizes {
    .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
  }
}

}
}`

This is the code to expand the sizing utility
@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    @each $prop, $abbrev in (width: w, height: h) {
      @each $size, $length in $sizes {
        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
      }
    }
  }
}

+1 I have lots of this class in bootstrap3. For example on Media object I have 60px image on xs viewport and 80px on larger screens.
Now with bootstrap 4 i can just add
$sizes: (
  25: 25%,
  50: 50%,
  75: 75%,
  100: 100%,
  60px: 60px,
  80px: 80px,
  100px: 100px
);

And get all this classes.
@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
    @each $prop, $abbrev in (width: w, height: h) {
      @each $size, $length in $sizes {
        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
      }
    }
  }
}

@import "~bootstrap/scss/bootstrap-grid.scss";

add this to your css:
/* Small devices (landscape phones, 576px and up)*/
@media (min-width: 576px) {
.w-sm-100 {
width:100%!important;
}
.w-sm-75 {
width:75%!important;
}
.w-sm-50 {
width:50%!important;
}
.w-sm-25 {
width:25%!important;
}
.h-sm-100 {
height:100%!important;
}
.h-sm-75 {
height:75%!important;
}
.h-sm-50 {
height:50%!important;
}
.h-sm-25 {
height:25%!important;
}
}
/* Medium devices (tablets, 768px and up)*/
@media (min-width: 768px) {
.w-md-100 {
width:100%!important;
}
.w-md-75 {
width:75%!important;
}
.w-md-50 {
width:50%!important;
}
.w-md-25 {
width:25%!important;
}
.h-md-100 {
height:100%!important;
}
.h-md-75 {
height:75%!important;
}
.h-md-50 {
height:50%!important;
}
.h-md-25 {
height:25%!important;
}
}
/* Large devices (desktops, 992px and up)*/
@media (min-width: 992px) {
.w-lg-100 {
width:100%!important;
}
.w-lg-75 {
width:75%!important;
}
.w-lg-50 {
width:50%!important;
}
.w-lg-25 {
width:25%!important;
}
.h-lg-100 {
height:100%!important;
}
.h-lg-75 {
height:75%!important;
}
.h-lg-50 {
height:50%!important;
}
.h-lg-25 {
height:25%!important;
}
}
/* Extra large devices (large desktops, 1200px and up)*/
@media (min-width: 1200px) {
.w-xl-100 {
width:100%!important;
}
.w-xl-75 {
width:75%!important;
}
.w-xl-50 {
width:50%!important;
}
.w-xl-25 {
width:25%!important;
}
.h-xl-100 {
height:100%!important;
}
.h-xl-75 {
height:75%!important;
}
.h-xl-50 {
height:50%!important;
}
.h-xl-25 {
height:25%!important;
}
}

it's work, thank you

This can be easily activated in V5 simply by adding this to your variables file:
$utilities: (
  "width": (
    property: width,
    responsive: true,
    class: w,
    values: (
      25: 25%,
      50: 50%,
      75: 75%,
      100: 100%,
      auto: auto
    )
  ),
  "height": (
    property: height,
    responsive: true,
    class: h,
    values: (
      25: 25%,
      50: 50%,
      75: 75%,
      100: 100%,
      auto: auto
    )
  ),
);

What would be great is a setting boolean setting to activate the responsive setting without needing to overite the utility.
The developers at bootstrap have done a great job by adding the API to simply build the classes you need.

You can modify the map instead of overwrite:
$utilities: map-merge(
  $utilities,
    (
      "width": map-merge(
        map-get($utilities, "width"),
        (
          responsive: true
        )
      )
    )
);

add this to your css:
/* Small devices (landscape phones, 576px and up)*/ @media (min-width: 576px) { .w-sm-100 { width:100%!important; } .w-sm-75 { width:75%!important; } .w-sm-50 { width:50%!important; } .w-sm-25 { width:25%!important; } .h-sm-100 { height:100%!important; } .h-sm-75 { height:75%!important; } .h-sm-50 { height:50%!important; } .h-sm-25 { height:25%!important; } }
/* Medium devices (tablets, 768px and up)*/ @media (min-width: 768px) { .w-md-100 { width:100%!important; } .w-md-75 { width:75%!important; } .w-md-50 { width:50%!important; } .w-md-25 { width:25%!important; } .h-md-100 { height:100%!important; } .h-md-75 { height:75%!important; } .h-md-50 { height:50%!important; } .h-md-25 { height:25%!important; } }
/* Large devices (desktops, 992px and up)*/ @media (min-width: 992px) { .w-lg-100 { width:100%!important; } .w-lg-75 { width:75%!important; } .w-lg-50 { width:50%!important; } .w-lg-25 { width:25%!important; } .h-lg-100 { height:100%!important; } .h-lg-75 { height:75%!important; } .h-lg-50 { height:50%!important; } .h-lg-25 { height:25%!important; } }
/* Extra large devices (large desktops, 1200px and up)*/ @media (min-width: 1200px) { .w-xl-100 { width:100%!important; } .w-xl-75 { width:75%!important; } .w-xl-50 { width:50%!important; } .w-xl-25 { width:25%!important; } .h-xl-100 { height:100%!important; } .h-xl-75 { height:75%!important; } .h-xl-50 { height:50%!important; } .h-xl-25 { height:25%!important; } }

it's work😍😍

Over 5 years later and it's still not added 👏

@MikeEntyce, Any Ideas on how to get them to add it this decade (2020-2030)?

@anthony0030 very easy (using sass):
$sizes: (
    50: 50%,
    75: 75%,
    100: 100%,
)

$utilities: (
  "width": (
    responsive: true,
    property: width,
    class: w,
    values: $sizes,
  ),
  "height": (
    responsive: true,
    property: height,
    class: h,
    values: $sizes
  ),
)

@madmax, thanks for the fast reply!
I know that it can be added with SASS. I even posted on this thread on how to do it.
It would be good to be added in CSS so I don't need to recompile it for each project that needs it.
Or like a plugin that is hosted on an official CDN.

Its still not there in BS 5.2
Another use case is for the offcanvas.
I want it w-100 and then w-50-md and finally w-25-lg
This is a perfect example of a use case where it would benefit one of their own components.

I just realized that we can use the col-* classes to fix this issue, e.g.

w-lg-25 (width: 25% only on large+ devices): col-lg-3
w-md-50 (width: 50% only on large+ devices): col-md-6
w-sm-75 (...): col-sm-9
w-100 (would be like w-xs-100): col-12

5.3 still doesn't have it, absurd!

Here is a function to deep-set values in SCSS maps. Credits to the original author.
/// Deep set function to set a value in nested maps
/// @author Kitty Giraudel
/// @access public
/// @param {Map} $map - Map
/// @param {List} $keys -  Key chain
/// @param {*} $value - Value to assign
/// @return {Map}

@function map-deep-set($map, $keys, $value) {
  $maps: ($map,);
  $result: null;

  // If the last key is a map already
  // Warn the user we will be overriding it with $value
  @if type-of(nth($keys, -1)) == "map" {
    @warn "The last key you specified is a map; it will be overridden with `#{$value}`.";
  }

  // If $keys is a single key
  // Just merge and return
  @if length($keys) == 1 {
    @return map-merge($map, ($keys: $value));
  }

  // Loop from the first to the second to last key from $keys
  // Store the associated map to this key in the $maps list
  // If the key doesn't exist, throw an error
  @for $i from 1 through length($keys) - 1 {
    $current-key: nth($keys, $i);
    $current-map: nth($maps, -1);
    $current-get: map-get($current-map, $current-key);
    @if $current-get == null {
      @error "Key `#{$key}` doesn't exist at current level in map.";
    }
    $maps: append($maps, $current-get);
  }

  // Loop from the last map to the first one
  // Merge it with the previous one
  @for $i from length($maps) through 1 {
    $current-map: nth($maps, $i);
    $current-key: nth($keys, $i);
    $current-val: if($i == length($maps), $value, $result);
    $result: map-merge($current-map, ($current-key: $current-val));
  }

  // Return result
  @return $result;
}

Here is how you enable the responsive classes.
$utilities: map-deep-set($utilities, "height" "responsive", true);
$utilities: map-deep-set($utilities, "max-height" "responsive", true);
$utilities: map-deep-set($utilities, "width" "responsive", true);
$utilities: map-deep-set($utilities, "max-width" "responsive", true);

This is the best solution I have come up with so far.

This can be easily activated in V5 simply by adding this to your variables file:
$utilities: (
  "width": (
    property: width,
    responsive: true,
    class: w,
    values: (
      25: 25%,
      50: 50%,
      75: 75%,
      100: 100%,
      auto: auto
    )
  ),
  "height": (
    property: height,
    responsive: true,
    class: h,
    values: (
      25: 25%,
      50: 50%,
      75: 75%,
      100: 100%,
      auto: auto
    )
  ),
);

What would be great is a setting boolean setting to activate the responsive setting without needing to overite the utility. The developers at bootstrap have done a great job by adding the API to simply build the classes you need.

This should be put on top of this thread as a solution, so users do not have to scroll through the rest of comments.
It is a very nice and solid solution and basically resolves the issue.

@smileBeda, Thanks for the compliment! There are other comparable solutions in this thread.
In my projects, I have been using deep-set more.
It would be great if Bootstrap added a simple sass variable that we could activate for this feature.


cache_seed

Caveat, I am running in a venv and using pyautogen.
[■□□□□□□□□□]User_proxy (to chat_manager):

query what is gorp

--------------------------------------------------------------------------------
Error: Unrecognized request argument supplied: cache_seed
User:

Had the same problem then i just changed on line 101 in q.py
llm_config = {"config_list": config_list_gpt4, "cache_seed": 42}
to
llm_config = {"config_list": config_list_gpt4}
It then worked!

will give it a whirl in a bit - thanks!

Confirmed that worked - thanks @mrmarten

closed


Looking for validation of config file

Hi, I'm currently looking to verify if following things can be achieved using SMA
Question 1:
After qBitt has downloaded the video, it will call SMA on the file (Changed settings in qBitt as described in wiki)
SMA has to convert the video(any codec format) to H264 8bit codec (Ignore if it's already in this format) and replace the old file
SMA will finish transcoding and hand back control to qBitt, which will hand back the new transcoded file to *arr
Is this what's happening under the hood?
Question 2:
I want SMA to transcode the video using my custom ffmpeg with h264_v4l2m2m encoder/decoder only (H/W accl is possible using h264_v4l2m2m on raspberry pi 4 for 64bit OS'es)
Example on how SMA should call ffmpeg: ffmpeg -c:v h264_v4l2m2m -b:v 8M -c:a copy -i input.* output.mp4
Does the config file below suit the above behaviour?
pi@rpi4:~/sickbeard_mp4_automator/setup $ cat autoProcess.ini.sample
[Converter]
ffmpeg = /home/pi/bin/ffmpeg
ffprobe = /home/pi/bin/ffprobe
threads = 4
hwaccels = h264_v4l2m2m
hwaccel-decoders = h264_v4l2m2m
hwdevices = h264_v4l2m2m:/dev/video10,h264_v4l2m2m:/dev/video11
hwaccel-output-format = h264_v4l2m2m:h264_v4l2m2m
output-directory =
output-format = mp4
output-extension = mp4
temp-extension =
minimum-size = 0
ignored-extensions = nfo, ds_store
copy-to =
move-to =
delete-original = True
sort-streams = True
process-same-extensions = False
bypass-if-copying-all = False
force-convert = False
post-process = False
wait-post-process = False
detailed-progress = False
opts-separator = ,
preopts =
postopts =
regex-directory-replace = [^\w\-_\. ]

[Permissions]
chmod = 0644
uid = -1
gid = -1

[Metadata]
relocate-moov = True
full-path-guess = True
tag = True
tag-language = eng
download-artwork = poster
sanitize-disposition =
strip-metadata = False
keep-titles = False

[Video]
codec = h264, x264
max-bitrate = 0
bitrate-ratio =
crf = -1
crf-profiles =
preset =
codec-parameters =
dynamic-parameters = False
max-width = 0
profile =
max-level = 0.0
pix-fmt =
prioritize-source-pix-fmt = True
filter =
force-filter = False

[HDR]
codec =
pix-fmt =
space = bt2020nc
transfer = smpte2084
primaries = bt2020
preset =
codec-parameters =
filter =
force-filter = False
profile =

[Audio]
codec = ac3
languages =
default-language =
first-stream-of-language = False
allow-language-relax = True
channel-bitrate = 128
variable-bitrate = 0
max-bitrate = 0
max-channels = 0
prefer-more-channels = True
default-more-channels = True
profile =
filter =
force-filter = False
sample-rates =
sample-format =
copy-original = False
copy-original-before = False
aac-adtstoasc = False
ignore-truehd = mp4, m4v
ignored-dispositions =
unique-dispositions = False

[Universal Audio]
codec = aac
channel-bitrate = 128
variable-bitrate = 0
first-stream-only = False
move-after = False
profile =
filter =
force-filter = False

[Audio.ChannelFilters]
6-2 = pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE

[Subtitle]
codec = mov_text
codec-image-based =
languages =
default-language =
first-stream-of-language = False
encoding =
burn-subtitles = False
burn-dispositions =
embed-subs = True
embed-image-subs = False
embed-only-internal-subs = False
filename-dispositions = forced
ignore-embedded-subs = False
ignored-dispositions =
unique-dispositions = False
attachment-codec =

h264_v4l2m2m supports both encoding & decoding
pi@rpi4:~ $ ffmpeg -codecs | grep -i h264
ffmpeg version N-105691-gc439c6b191 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/home/pi/bin --arch=aarch64 --enable-gpl --enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libwebp --enable-libdrm --enable-libsvtav1 --enable-libdav1d --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxml2 --enable-nonfree
  libavutil      57. 21.100 / 57. 21.100
  libavcodec     59. 21.100 / 59. 21.100
  libavformat    59. 17.102 / 59. 17.102
  libavdevice    59.  5.100 / 59.  5.100
  libavfilter     8. 27.100 /  8. 27.100
  libswscale      6.  5.100 /  6.  5.100
  libswresample   4.  4.100 /  4.  4.100
  libpostproc    56.  4.100 / 56.  4.100

Codecs:
 D..... = Decoding supported
 .E.... = Encoding supported
 ..V... = Video codec
 ..A... = Audio codec
 ..S... = Subtitle codec
 ...I.. = Intra frame-only codec
 ....L. = Lossy compression
 .....S = Lossless compression
---------
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m ) (encoders: libx264 libx264rgb h264_v4l2m2m h264_vaapi )

h264_v4l2m2m not supported at the moment but easy to add. Documentation on this encoder is spare, if you have any post it and I'll take a look
I don't have a pi to test on, can you run also run ffmpeg -hwaccels and post that too so I can take a look and I'll make some quick updates and get back to you
Also since apparently there's a hevc variant as well can you run ffmpeg -codecs | grep -i hevc and I can do them both maybe

Article used for enabling this encoder/decoder: h264_v4l2m2m
pi@rpi4:~ $ ffmpeg -hwaccels
ffmpeg version N-105691-gc439c6b191 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/home/pi/bin --arch=aarch64 --enable-gpl --enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libwebp --enable-libdrm --enable-libsvtav1 --enable-libdav1d --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxml2 --enable-nonfree
  libavutil      57. 21.100 / 57. 21.100
  libavcodec     59. 21.100 / 59. 21.100
  libavformat    59. 17.102 / 59. 17.102
  libavdevice    59.  5.100 / 59.  5.100
  libavfilter     8. 27.100 /  8. 27.100
  libswscale      6.  5.100 /  6.  5.100
  libswresample   4.  4.100 /  4.  4.100
  libpostproc    56.  4.100 / 56.  4.100
Hardware acceleration methods:
vdpau
vaapi
drm

pi@rpi4:~ $ ffmpeg -codecs | grep -i hevc
ffmpeg version N-105691-gc439c6b191 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/home/pi/bin --arch=aarch64 --enable-gpl --enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libwebp --enable-libdrm --enable-libsvtav1 --enable-libdav1d --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxml2 --enable-nonfree
  libavutil      57. 21.100 / 57. 21.100
  libavcodec     59. 21.100 / 59. 21.100
  libavformat    59. 17.102 / 59. 17.102
  libavdevice    59.  5.100 / 59.  5.100
  libavfilter     8. 27.100 /  8. 27.100
  libswscale      6.  5.100 /  6.  5.100
  libswresample   4.  4.100 /  4.  4.100
  libpostproc    56.  4.100 / 56.  4.100
 DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_v4l2m2m ) (encoders: libx265 hevc_v4l2m2m hevc_vaapi )

@mdhiggins Let me know if you need any other info from raspberry pi

I was looking for more technical documentation similar to what's available for other hardware encoders like vaapi, QSV, or nvenc. Doesn't seem to be much out there beyond some very basic tutorials.
The sample you provided seems to only be a decoder example since you're specifying the codec before the input file
ffmpeg -c:v h264_v4l2m2m -b:v 8M -c:a copy -i input.* output.mp4
The example in the article is using the encoder since it comes after
ffmpeg -i video.mp4 -c:v h264_v4l2m2m -b:v 8M -c:a copy test.mp4
One thing I did notice from reviewing some of the source code and updates for this hwaccel option is that it behaves a little differently in that it doesn't report itself on the -hwaccels list so I made some updates so that you can still use the decoder in this case
2ced3be263cd8b470417d1a0767a595ff1999ece
Its probably unlikely that yuv420p is the only pix_fmt the encoder can use, you can check by running
ffmpeg -h encoder=h264_v4l2m2m
Look for the line
Supported pixel formats:
As for settings you'll need, here are the important ones
[Converter]
hwaccels =
hwaccel-decoders = h264_v4l2m2m
hwdevices =
hwaccel-output-format =

[Video]
codec = h264_v4l2m2m

Depending on supported pix_fmt options you may need to adjust that setting as well

You also may be able to combine this with the drm hwaccel format to avoid any software steps but I can't confirm this without a test device and it does get more complicated

Closing this out since support has been added, continue discussion if there are any issues here and I can reopen

@mdhiggins  Looks like h264_v4l2m2m doesn't list it's supported pix_fmt. However when trying to encode, it throws error without this argument. Jellyfin Issues #4892
pi@rpi4:~ $ ffmpeg -hide_banner -h encoder=h264_v4l2m2m
Encoder h264_v4l2m2m [V4L2 mem2mem H.264 encoder wrapper]:
    General capabilities: delay hardware
    Threading capabilities: none
h264_v4l2m2m_encoder AVOptions:
  -num_output_buffers <int>        E..V....... Number of buffers in the output context (from 6 to INT_MAX) (default 16)
  -num_capture_buffers <int>        E..V....... Number of buffers in the capture context (from 4 to INT_MAX) (default 4)

Got it, this can technically be solved by setting the pix-fmt option in autoProcess but I went ahead and just hard-coded it for the h264_v4l2m2m class
37c9bfa0e6279497ba98a76a5c67f52f31acbeda

Thanks man! I shall setup SMA in my Pi right away!

@vrv501 can you share your full config? I adopted the suggested config changes:

[Converter]
hwaccels =
hwaccel-decoders = h264_v4l2m2m
hwdevices =
hwaccel-output-format =
[Video]
codec = h264_v4l2m2m

However the logs still show -vcodec libx264 which I would expect to be h264_v4l2m2m as specified in the config file.

Could you share the full logs? I'll take a look

Sure, sent you an email.


Setup GitHub actions

This is an initial go of setting up GitHub actions for AssertJ.
I added https://github.com/sormuras/bach/blob/master/install-jdk.sh so we can keep using testing with OpenJDK. The GitHub actions have a setup for JDK Azul.
The EA build is currently not setup to continue on error true. The reason for that is that with GitHub actions even if something fails the job would be marked as green, only way to see that it failed is to check the logs.
I also added MacOS and Windows builds only for Java 11.
The Windows build and EA are failing. I can try to fix them both if you like the approach (I don't have Windows, but I could perhaps figure it out from the test failures 😄).
I updated the Maven version to 3.6.1 so I can use --no-show-progress, this removes the downloading progress from the console, we could alternatively use -B, with that there would be no coloring in the console.
I also configured the sonar cloud to only be done in this repo and not on others. You would probably need to add a secrets.SONAR_TOKEN. Having said this now it seems like this would be printed on the console so we need to resolve it.

About the JDK I think we could switch to Azul, or do you see something against it?

I have no problem with the ones from Azul. However, they don't provide EA JDK. For windows, macOS and the sonar build the Zuul JDK is used. If we want to keep testing against EA we'll need to use instal-jdk.sh.

I think that the Windows tests would be fixed with https://github.com/joel-costigliola/assertj-core/pull/1724 :)

This issue is more to get noticed of future windows only problems instead of relying on our dear community to fix them for us (which we appreciate!).
I think we will only do a simple build for windows as we have re-enabled sonar in the current travis build.

Thanks @filiphr , I have integrated the PR for windows and macos only, the windows build fails when setting up java. will look into that later.

the windows build fails when setting up java.

It looks like it was just a temporary connection timeout, now it runs fine and the issue reported in #1724 appeared.

Thanks @filiphr , I have integrated the PR for windows and macos only, the windows build fails when setting up java. will look into that later.

No problem, glad that I could help.
Btw why only the windows and macos?

We might at some point, at the moment travis is working fine for us s no need.


switch from dictionary-en-us to dictionary-en

Hi @wooorm! 👋
Hope you're doing well! I noticed the package dictionary-en-us does not exist, but dictionary-en does, so here is a little edit to the readme.

Good catch! Yeah that was a recent change (standard bodies apparently think that the country with the most speakers get the language, which I guess makes sense).
I’m doing well. Hope you are too! Stay safe!