Allow CheckBoxTreeCell CellFactory

I was hoping to use this library in JGitFX. However, LiveDirs does not allow the option of using the CheckBoxTreeCell factory, which is essential for designing a commit or revert dialog where the user can check which files they want to stage and commit or revert.

Hi Jordan, you are in control of creating your TreeView, so you can set your own cell factory.

Right, but in the documentation, it says,

this cell factory assumes that the TreeView root, and all children are instances of CheckBoxTreeItem, rather than the default TreeItem class that is used normally.

If I do set the cell factory as you mentioned, I get the desired view, but the functionality doesn't work. Checking a parent directory will not also check its subdirectories and files.

Ah, I see, that's unfortunate.
This is another example of how most JavaFX controls are not very reusable beyond a very limited use case that someone had in mind when designing them. The implementation of the checkbox functionality must use instanceof checks at runtime, which in 99.99% of cases is a terrible idea, because it makes the types lie to you (in this case, at compile time it says any TreeItem is fine, but at runtime it says "we don't work with this TreeItem!"). When enough lies add up, it is not possible anymore to reason about your programs. Types are machine checked documentation, so let them work for you, don't work around them.
Now, I will not go down the path of duplicating code for the special case of CheckBoxTreeItems. Such design does not scale. When JavaFX comes up with yet another special kind of tree item, do we duplicate again to handle that case? I have to say no to that. We need to come up with a better solution. It will likely involve some additional type parameter somewhere.

This is another example of how most JavaFX controls are not very reusable beyond a very limited use case that someone had in mind when designing them.

Lol... no kidding...

It will likely involve some additional type parameter somewhere.

Have you see my PR #3?

Lol... I just reread my own comment about the documentation, I guess my recent work in my PR actually shouldn't be done: the root also needs to be CheckBoxTreeItem.

I've submitted another PR to account for the above realizatioin

I saw the PR and by

Now, I will not go down the path of duplicating code for the special case of CheckBoxTreeItems. Such design does not scale. When JavaFX comes up with yet another special kind of tree item, do we duplicate again to handle that case? I have to say no to that.

I mean that adding CheckBoxPathItem, which basically duplicates code from the original PathItem, is the path I don't want to go.

Right, just realized that. I went the route I did because I wasn't sure how to account for that, but I see how to do it now.

On second thought, this code doesn't work:
abstract class PathItem<GenericTreeItem extends TreeItem<Path>> extends GenericTreeItem {
}

I'm guessing we'll need to convert the PathItem.java classes to interfaces and use default methods? I guess accessibility won't be an issue since it'll remain package private.

Nah, even that doesn't work out well due to TreeItem#getChildren calls.

Here's an idea. Currently we have
PathItem extends TreeItem<Path>

Let's keep PathItem parameterized, i.e.
PathItem<T> extends TreeItem<T>

The idea is that T will be an object from which a Path can be obtained. So it can be Path itself, or, for example, Tuple2<Path, Var<Boolean>>. The key is that PathItem and its implementations don't care what T really is, as long as you also provide a function to extract a Path from T. So PathItem constructor would take an additional argument Function<T, Path> project. DirItem will also need to be able to create T from just a Path, so it will need yet another function argument Function<Path, T> inject.
This additional type parameter will also have to be added all the way to DirectoryModel and LiveDirs. Factory methods can be added to create LiveDirs<Path>, with both inject and project mentioned above defaulting to Function.identity().
I haven't worked out all the details, but it seems promising.
Maybe another desired tweak will be to provide versions of DirectoryModel.creations() etc. that emit events containing TreeItem<T> (instead of just the path to the file that has been created), so that when a file gets created, you can traverse the tree to make changes.

Correct me if I'm wrong, but the only way to make this scalable isn't much different than the poorly-scalable idea that my PR uses because one cannot write:
class PathItem<T extends TreeItem<Path>> extends T {}

PathItem extends TreeItem<Path> and overrides it's isLeaf(). If I wanted to add CheckBoxTreeItem (or some other future TreeItem subclass), I also need to override its isLeaf() method. Since I can't modify the TreeItem subclass to extend from PathItem as opposed to TreeItem<Path>, this requires its own implementation. However, as soon as we go that route, we can no longer use generics. Each TreeItem-related class we would wish to implement would need its own PathItem-like classes that extends that base class.
This is essentially what my approach does. However, this approach could be further refined. If each TreeItem subclass needs to write its own PathItem, FileItem, DirItem, and TopLevelDirItem, then much of that code duplication could be reduced via interfaces' default methods and a static class for any TreeItem-related methods.
If Java supported traits, then this wouldn't be as big of an issue.

I'm trying out another way. I'm using default methods in interfaces to make things more generic (public methods are named the same but private methods are now prefixed with an underscore). To get around the problem of accessing the trees, I'm using a hack:
interface PathItem<T extends TreeItem<Path> & PathItem<T>, /* other generics */> {
    T getTree();
}

Whenever a new TreeItem subclass comes out, we can quickly implement it by following a simple code pattern (See PathItem<T, D, F>'s javadoc in my generalizeTreeItem branch).

I've finished the implementation of this new way. See #5.

Lol... Just now saw your latest comment.

I'm looking at your comment again. In some ways, I feel like the ideas you are proposing there would be useful in resolving #2.

So, you are proposing something like this:
PathItem<T> extends TreeItem<T> {
    PathItem( /* args */, Function<T, Path> project) {}
}
FileItem<T> extends PathItem<T> { /* no changes */ }
DirItem<T> extends PathItem<T> {
    DirItem( /* args */, Function<Path, T> inject) {}
}
TopLevelDirItem<T> extends DirItem<T> { /* no changes */ }

The regular TreeItem code would remain the same:
// For regular TreeItems
PathItem<Path> pathItem = new PathItem<>(/* args */, Function.identity());
TreeView<Path> view = new TreeView<>(root);

But the CheckBoxTreeItem would have some additional configuration
// For CheckBoxTreeItems
PathItem<Tuple2<Path, Var<Boolean>>> checkBoxItem = new PathItem<>(/* args */, Tuple2::get1);
TreeView<Tuple2<Path, Var<Boolean>>> view = new TreeView<>(root);
view.setCellFactory(customCheckBoxFactory);

where customCheckBoxFactory would do what CheckBoxTreeCell does but for our specific handling.
If so, yes, I do believe that would work.

Yes, that's a pretty accurate description of what I meant.

I wish I would have read that and understood it before writing #5 because that got really complex really fast :smiley:

I'm sure it was a great learning experience :)

Lol... It was.

Ran into a problem in my attempt to implement the CheckBoxTreeCell.
The reason why CheckBoxTreeCell requires CheckBoxTreeItems is because the Item class (model) is responsible for updating the parent directory and its children's selection states based on the context (e.g. if parent directory is checked (and all its children are) and then the user unchecks one of its children, that parent directory needs to be unchecked as well. The child that gets unchecked is responsible for unchecking its parent).

TreeCell.getTreeItem() gives you the tree item, right?

I looked at OpenJDK and looked through how they wrote the code for the initial CheckBoxTreeCell to help guide me. I understand it a lot better now.
The issue I'm running into is how to update the parent/children's selected/intermediate properties efficiently.

In your custom TreeCell's updateItem method, you can register listener on the selectedProperty of the item's value. This listener, as a closure, can access that cell's TreeItem. From there, you can access that item's parent and children. Am I missing something?

Btw, if I need to represent 3 values (selected, intermediate, unselected), I would define an enum for them and have one Property of that enum value, rather than two boolean properties.

Let me explain. Since every TreeCell has added a listener to its TreeItem's selectedProperty, I realized that it would be inefficient. When the first TreeCell's checkbox is updated (whether it is now checked, undefined, or unchecked), my code would start a recursive call upwards to the parent.
Using pseduo code:

// ACTUAL CODE
checkbox.selectedProperty.bindbidirectional(selectedProperty());
// where state property is
// "Val.combine(selectedProperty, intermediateProperty, null);"
stateProperty.addListener(obs -> updateCheckBoxItems());

public void updateCheckBoxItems() {
    // no need to handle leaf/node's checkbox update
    //  because it's bound bidirectionally...

    // update going upwards
    TreeItem parent = getTreeItem().getParent();
    if (parent != null) { updateParent(parent) }

    // now that upwards is done, do downwards update
    if (newstate == checked) {
        force check all children and their children recursively
    } else if (newstate == unchecked) {
        force uncheck all children and their children recursively
    }
    // don't do anything for intermediate state.
}

    public void updateParent(TreeItem parentItem) {
        if (parents children are all checked) {
            make parent checked also
        } else if (at least one child is checked) {
            make parent undefined [indeterminate == true]
        } else ( /* no children checked */ ) {
             make parent unchecked
        }
        // now that parent is figured out, continue the recursion on its parent
        updateParent(parentItem.getParent())
    }

I realized that when I run the code make parent [state], it will also call it's listener (which calls the updateCheckBoxItems, which would call the code that does the downward updating.
So, I would get a crazy chain of updates that looked like this:

Child gets updated
Child updates its parent
parent is updated
parent updates its parent (go to number 3)
root is reached (doesn't have a parent)
root begins recursive call downwards (forces item to be checked/unchecked)
root's child gets updated
root's child updates it's parent (the root)
Go to number 5.

I get that some sort of locking mechanism needs to be involved, but I wasn't sure how that should work. I think I realized that the only way around this was to only run the listener's code if the lock wasn't locked yet. CheckBoxTreeItem has a private static boolean lock, but I can't do that on TreeItem :-)
That's about how far I got before something else needed my attention.

You don't need to call updateParent recursively, since that's the job of the parent's listener. Same for updating children. The crazy recursion scheme would in fact terminate very quickly, because if you attempt to set a property to a value that it currently holds, it does not result in a change event.

You don't need to call updateParent recursively, since that's the job of the parent's listener.

I guess now that I see that my original code does work (see below), yeah you're right. If I update the parent, then allow the parent listener to continue that process, I don't need to make it recursive.

The crazy recursion scheme would in fact terminate very quickly, because if you attempt to set a property to a value that it currently holds, it does not result in a change event.

Turns out it does work. I assumed that, in the downward update, it would set its child to a new value. However, that doesn't occur when a parent's new state is an intermediate state and when it's checked or unchecked and it tries to force check/uncheck its children, those children will already be up-to-date because of the upwards update (and thus a no-op). In the one case where that isn't already true, that's the case I want it to work that way....

I've been thinking this issue over and I think it's not needed....
I realized that the Commit dialog or Revert dialog that would be used in JGitFX is static. The dialog that displays the TreeView that uses CheckBoxTreeItems to display the items on which a user wants some action to be applied is called via showAndWait(). Since that pauses the JavaFX Application Thread until it is closed, I don't need live updating. Even if it is called via show() and doesn't pause the thread, there could be a refresh button within the dialog that will reload the TreeView. This is how IntelliJ Idea currently deals with the problem.
Beyond that, if I implement my own TreeView, I can also implement #2 easily. Still, I think #2 would be useful for this library.

Another update: Although I won't be using the CheckBox-pseudo-code workaround you suggested in the manner I initially thought I would, I still think generalizing the code is better.
For example, I want to include a directory watcher in a JGitFX demo, but I want to update the text color of the file to represent the status of that file in the git repo (added, modified, untracked, etc.). With the generic-approach and the inject/project functions, I would be able to implement that.

Closing via #7


Create unique id for table and use that internally rather than table name

Background
In future we will want to allow the user to rename a Sleeper table. With the current approach this would be problematic as the table name is used in the names of files, in the key in the state store, etc.
Description
We'd like the system to refer to tables by a unique id internally and make the table name a property of the table.
Analysis
The obvious way to solve this is to give a table a unique id when it is created. This unique id could either be a one-up counter, or a UUID. As this will be a breaking change we should do it as part of milestone 0.20.0. Note that we do not need to provide the ability to rename a table in this issue.
As a general principle:

Internally the system should use the table id. For example, compaction jobs should be created for a table id, not a table name. This means that if a user changes the name of a table this will not effect the operation of the system.
The user will interact with the system using table names. When the user submits an ingest or query request to a queue, it will use the table name. The table name will be resolved to the table id at the moment the execution of the tasks begins.

We will need the following changes:

A way to allocate a table id when a table is created.
A place to store the mapping from table id to table name.
The unique id should be used where the table name is currently used in the names of files (i.e. the directory name inside the data bucket), and in the keys in the state store.
The unique id should be used in internal job definitions such as compaction jobs or partition splitting jobs.
Requests by a user (queries, ingest, use of the admin client) should use the table name and that should be mapped to the query id when processing begins.

We will need to decide whether the table id is a table property or not. If it is, that raises the question of what happens if a user requests the creation of a table with a particular id and that id already exists.

Closing as the child issues are all complete.


Migrate Kubernetes Create and Edit Application Angular view to React - most components

Migrate most of the components of the Kubernetes Create and Edit application screens from Angular to React.

More PRs exist for this, as listed here (cannot link directly as there's a limit of 10 links):
https://github.com/portainer/portainer/pull/10964
https://github.com/portainer/portainer/pull/10961
https://github.com/portainer/portainer/pull/10842


Distributed Tensorflow eval values are coming as 0

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

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: No
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 1.12.1
Python version: 3.7
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: NA
GPU model and memory: NA

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
I'm running asynchronous distributed training in Tensorflow using Parameter server strategy. Multi worker on multiple CPUs with evaluator as a separate node.
Describe the expected behavior
Training and evaluation should happen fine.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
Sample tf_config of Parameter server: Index and type varies for chief, worker and evaluator on other TF_CONFIGs.
TF_CONFIG={
"task": {
"type": "ps",
"index": 0
},
"cluster": {
"chief": ["machine2:2222"],
"worker": ["machine3:2223","machine4:2224"],
"evaluator": ["machine5:2225"],
"ps": ["machine1:2218"]
}
}
model_main.py
predict_input_fn = train_and_eval_dict['predict_input_fn']
train_steps = train_and_eval_dict['train_steps']
if FLAGS.checkpoint_dir:
if FLAGS.eval_training_data:
name = 'training_data'
input_fn = eval_on_train_input_fn
else:
name = 'validation_data'
# The first eval input will be evaluated.
input_fn = eval_input_fns[0]

if FLAGS.run_once:
    estimator.evaluate(input_fn,
        num_eval_steps=None,
        checkpoint_path=tf.train.latest_checkpoint(
            FLAGS.checkpoint_dir))
else:
    model_lib.continuous_eval(estimator, FLAGS.checkpoint_dir, input_fn, train_steps, name)

else:
train_spec, eval_specs = model_lib.create_train_and_eval_specs(
train_input_fn,
eval_input_fns,
eval_on_train_input_fn,
predict_input_fn,
train_steps,
eval_on_train_data=False)
Currently only a single Eval Spec is allowed.
tf.estimator.train_and_evaluate(estimator, train_spec, eval_specs[0])
if name == 'main':
tf.app.run()
Other info / logs
Warnings:
W0828 00:03:55.229441<PHONE_NUMBER>09248 estimator.py:1924] Estimator's model_fn (.model_fn at 0x7fc5da9b5268>) includes params argument, but params are not passed to Estimator.

./tensorflow/core/grappler/optimizers/graph_optimizer_stage.h:241] Failed to run optimizer ArithmeticOptimizer, stage RemoveStackStridedSliceSameAxis node Preprocessor/ResizeToRange/strided_slice_3. Error: Pack node (Preprocessor/ResizeToRange/stack_2) axis attribute is out of bounds: 0

But the training runs fine and evaluation happens. But my evaluation results are 0 all the time.
creating index...
index created!
creating index...
index created!
Running per image evaluation...
Evaluate annotation type bbox
DONE (t=1.66s).
Accumulating evaluation results...
DONE (t=0.52s).
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000

Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.000

Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000

Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000

Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000

Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.000

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.000

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000

Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000

Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000

Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000

Any help would be much appreciated. Thanks in advance.
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

Looks like the code is incomplete.Can you please provide full code snippet to reproduce it on our environment.Thanks!

This is my model_main.py file,
from future import absolute_import
from future import division
from future import print_function
from absl import flags
import tensorflow as tf
from object_detection import model_hparams
from object_detection import model_lib
flags.DEFINE_string(
'model_dir', None, 'Path to output model directory '
'where event and checkpoint files will be written.')
flags.DEFINE_string('pipeline_config_path', None, 'Path to pipeline config '
'file.')
flags.DEFINE_integer('num_train_steps', None, 'Number of train steps.')
flags.DEFINE_boolean('eval_training_data', False,
'If training data should be evaluated for this job. Note '
'that one call only use this in eval-only mode, and '
'checkpoint_dir must be supplied.')
flags.DEFINE_integer('sample_1_of_n_eval_examples', 1, 'Will sample one of '
'every n eval input examples, where n is provided.')
flags.DEFINE_integer('sample_1_of_n_eval_on_train_examples', 5, 'Will sample '
'one of every n train input examples for evaluation, '
'where n is provided. This is only used if '
'eval_training_data is True.')
flags.DEFINE_string(
'hparams_overrides', None, 'Hyperparameter overrides, '
'represented as a string containing comma-separated '
'hparam_name=value pairs.')
flags.DEFINE_string(
'checkpoint_dir', None, 'Path to directory holding a checkpoint.  If '
'checkpoint_dir is provided, this binary operates in eval-only mode, '
'writing resulting metrics to model_dir.')
flags.DEFINE_boolean(
'run_once', False, 'If running in eval-only mode, whether to run just '
'one round of eval vs running continuously (default).'
)
FLAGS = flags.FLAGS
def main(unused_argv):
flags.mark_flag_as_required('model_dir')
flags.mark_flag_as_required('pipeline_config_path')
config = tf.estimator.RunConfig(model_dir=FLAGS.model_dir)
train_and_eval_dict = model_lib.create_estimator_and_inputs(
run_config=config,
hparams=model_hparams.create_hparams(FLAGS.hparams_overrides),
pipeline_config_path=FLAGS.pipeline_config_path,
train_steps=FLAGS.num_train_steps,
sample_1_of_n_eval_examples=FLAGS.sample_1_of_n_eval_examples,
sample_1_of_n_eval_on_train_examples=(
FLAGS.sample_1_of_n_eval_on_train_examples))
estimator = train_and_eval_dict['estimator']
train_input_fn = train_and_eval_dict['train_input_fn']
eval_input_fns = train_and_eval_dict['eval_input_fns']
eval_on_train_input_fn = train_and_eval_dict['eval_on_train_input_fn']
predict_input_fn = train_and_eval_dict['predict_input_fn']
train_steps = train_and_eval_dict['train_steps']
#tf.logging.set_verbosity(tf.logging.INFO)
if FLAGS.checkpoint_dir:
if FLAGS.eval_training_data:
name = 'training_data'
input_fn = eval_on_train_input_fn
else:
name = 'validation_data'
#The first eval input will be evaluated.
input_fn = eval_input_fns[0]
if FLAGS.run_once:
estimator.evaluate(input_fn,
num_eval_steps=None,
checkpoint_path=tf.train.latest_checkpoint(
FLAGS.checkpoint_dir))
else:
model_lib.continuous_eval(estimator, FLAGS.checkpoint_dir, input_fn,
train_steps, name)
else:
train_spec, eval_specs = model_lib.create_train_and_eval_specs(
train_input_fn,
eval_input_fns,
eval_on_train_input_fn,
predict_input_fn,
train_steps,
eval_on_train_data=False)
#Currently only a single Eval Spec is allowed.
tf.estimator.train_and_evaluate(estimator, train_spec, eval_specs[0])

if name == 'main':
tf.app.run()

Attaching model_main.py file as txt
model_main.py.txt

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there.


[CBS] Extraction failes

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.02.26. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2018.02.26

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

When downloading the latest episode of CBS's Bull (2x15), I get the following error:
./Downloads/youtube-dl -v http://www.cbs.com/shows/bull/video/sb4atUdwyQ_C3TTD8YLxun21_NLlnWvr/bull-witness-for-the-prosecution/
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'http://www.cbs.com/shows/bull/video/sb4atUdwyQ_C3TTD8YLxun21_NLlnWvr/bull-witness-for-the-prosecution/']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.02.26
[debug] Python version 2.7.14 (CPython) - Linux-4.15.6-58.current-x86_64-with-glibc2.2.5
[debug] exe versions: ffmpeg 3.4.2, ffprobe 3.4.2, rtmpdump 2.3
[debug] Proxy map: {}
[CBS] sb4atUdwyQ_C3TTD8YLxun21_NLlnWvr: Downloading XML
[CBS] sb4atUdwyQ_C3TTD8YLxun21_NLlnWvr: Downloading OnceURL SMIL data
ERROR: None of the available releases match the specified AssetType, ProtectionScheme, and/or Format preferences
Traceback (most recent call last):
  File "./Downloads/youtube-dl(5)/youtube_dl/YoutubeDL.py", line 785, in extract_info
    ie_result = ie.extract(url)
  File "./Downloads/youtube-dl(5)/youtube_dl/extractor/common.py", line 440, in extract
    ie_result = self._real_extract(url)
  File "./Downloads/youtube-dl(5)/youtube_dl/extractor/cbs.py", line 100, in _real_extract
    return self._extract_video_info(content_id)
  File "./Downloads/youtube-dl(5)/youtube_dl/extractor/cbs.py", line 79, in _extract_video_info
    'Downloading %s SMIL data' % asset_type)
  File "./Downloads/youtube-dl(5)/youtube_dl/extractor/theplatform.py", line 42, in _extract_theplatform_smil
    raise ExtractorError(error_element.attrib['abstract'], expected=True)
ExtractorError: None of the available releases match the specified AssetType, ProtectionScheme, and/or Format preferences

This issue seems to be confined to this particular video as the download of other videos from cbs.com, released before and after the one in question, works perfectly fine.

My python skills are basically non-existant (the code I wrote today is the most I have done reading/writing python), but I have made changes to a copy on my machine that seems to work. I just wrapped the code snippet below in a try-except block and it seems to be working.
                tp_formats, tp_subtitles = self._extract_theplatform_smil(                     update_url_query(tp_release_url, query), content_id,                     'Downloading %s SMIL data' % asset_type)                 formats.extend(tp_formats)                 subtitles = self._merge_subtitles(subtitles, tp_subtitles)
This also seems to be a duplicate of the issue: #13490.

I've been having the same problem trying to download the March 5 and March 6 episodes of The Price Is Right from https://www.cbs.com/shows/the_price_is_right/video/GTpqMvkceyNvH20lm69bMQrCOj3HvtL8/the-price-is-right-3-5-2018/ and https://www.cbs.com/shows/the_price_is_right/video/2INTSJGKeWOhuYsANboSttUetNxmTvhY/the-price-is-right-3-6-2018/ .  As others have stated, it seems to be limited to these episodes of this program.
A Verbose printout of the former yields the following:
C:\Users\TPIRFan\Program Files\NewYoutube-dl3>youtube-dl -v "https://www.cbs.com/shows/the_price_is_right/video/GTpqMvkceyNvH20lm69bMQrCOj3HvtL8/the-price-is-right-3-5-2018/"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://www.cbs.com/shows/the_price_is_right/video/GTpqMvkceyNvH20lm69bMQrCOj3HvtL8/the-price-is-right-3-5-2018/']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2018.03.03
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.16299
[debug] exe versions: ffmpeg N-87130-g2b9fd15, rtmpdump 2.4
[debug] Proxy map: {}
[CBS] GTpqMvkceyNvH20lm69bMQrCOj3HvtL8: Downloading XML
[CBS] GTpqMvkceyNvH20lm69bMQrCOj3HvtL8: Downloading RTMP SMIL data
[CBS] GTpqMvkceyNvH20lm69bMQrCOj3HvtL8: Downloading StreamPack SMIL data
[CBS] GTpqMvkceyNvH20lm69bMQrCOj3HvtL8: Downloading m3u8 information
[CBS] GTpqMvkceyNvH20lm69bMQrCOj3HvtL8: Downloading OnceURL SMIL data
ERROR: None of the available releases match the specified AssetType, ProtectionScheme, and/or Format preferences
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp0wqp9d0n\build\youtube_dl\YoutubeDL.py", line 785, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp0wqp9d0n\build\youtube_dl\extractor\common.py", line 440, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp0wqp9d0n\build\youtube_dl\extractor\cbs.py", line 100, in _real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp0wqp9d0n\build\youtube_dl\extractor\cbs.py", line 79, in _extract_video_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp0wqp9d0n\build\youtube_dl\extractor\theplatform.py", line 42, in _extract_theplatform_smil
youtube_dl.utils.ExtractorError: None of the available releases match the specified AssetType, ProtectionScheme, and/or Format preferences
I'm not well-versed in this sort of thing, so it's entirely possible that I just don't have the fix implemented correctly.  Is there a particular place on the drive where it needs to go?

Find the file extractor/cbs.py  (in my case, it was located in /usr/lib/python3.6/site-packages/youtube_dl/extractor/cbs.py)
Search for the code (as mentioned above)
tp_formats, tp_subtitles = self._extract_theplatform_smil(
    update_url_query(tp_release_url, query), content_id,
    'Downloading %s SMIL data' % asset_type)
formats.extend(tp_formats),
subtitles = self._merge_subtitles(subtitles, tp_subtitles)

In my case, the tp_formats line has 12 spaces beforehand.  So, insert a line before the tp_formats line, with 12 spaces, followed by "try:" (without the quotes).
Next, indent the 5 lines above by 4 spaces.
Follow the subtitles line with a line that starts with 12 spaces, then "except:" (without the quotes)
On the line below that, put 16 spaces, followed by "print("ERROR!")" (take off the outside quotes)
It should look like this now:
try:
    tp_formats, tp_subtitles = self._extract_theplatform_smil(
        update_url_query(tp_release_url, query), content_id,
        'Downloading %s SMIL data' % asset_type)
    formats.extend(tp_formats)
    subtitles = self._merge_subtitles(subtitles, tp_subtitles)
except:
    print("ERROR!")`

(All lines indented to the original level that the tp_formats line was.)
Save that, and try again.  It worked perfectly for me.

I'm afraid I'm still fouling something up.  Is there an easy way to find where this file is located on my machine?  I've only been able to locate it in the same directories that YouTube-dl itself is installed in, and editing it there doesn't seem to be affecting anything.
(Incidentally, YouTube-dl is downloading today's Price Is Right without any problems, but Monday and Tuesday's shows still won't cooperate.)

I can verify that this fix worked.


Remove old projector code

This Pull Request removes the old projector code but does not add the new one.
I would like to merge this before I write the new projector code. I wrote this branch on the way to our meeting in august. I don't like to rebase it anymore.

@emanuelschuetze I tested it. Server started. I tested the client with yarn build. It worked.


WECUI visuals when creating a claim do not match the resulting claim

This one is hard to explain, but I'll try and follow it up with a video.
Right click a block to start creating a claim. The WECUI visual comes up and outlines a nice visual of a bounding box. The corner seems to be show at the player's reach, which causes issues because when clicking the second time the visual is nowhere near the actual block clicked.
Video: https://youtu.be/k4ifzvUOqtQ

So to support this properly, we will need a change in WECUI
The current spec only supports following the player's eye when sending ~ for all 3 points as shown here
https://github.com/mikroskeem/WorldEditCUI/blob/master/src/main/java/com/mumfrey/worldeditcui/event/cui/CUIEventPoint3D.java#L42
I assume you would like it to follow the block the cursor is hitting up to a specified range. For the time being, I will disable the drag while in 2D mode.

I added a new visual setting to workaround this issue
https://github.com/bloodmc/GriefDefender/blob/master/bukkit/src/main/java/com/griefdefender/configuration/category/VisualCategory.java#L37
Does this work for you?


Add ability to set podManagementPolicy for searchers and indexers

With 100 nodes it's too long to wait for each node to start or terminate.

Closing as it is a duplicate of #17


@JsonCodec(encodeOnly=true) causes a compiler error in Scala 2.13

When upgrading from Scala 2.12 to 2.13 am running into the following compiler error:
Usage of named or default arguments transformed this annotation
[error] constructor call into a block. The corresponding AnnotationInfo
[error] will contain references to local values and default getters instead
[error] of the actual argument trees
[error]   @JsonCodec(decodeOnly = true)
[error]    ^

What is the correct way to express this in Scala 2.13?
Note that I have set my compiler options to very strict (https://github.com/DavidGregory084/sbt-tpolecat/blob/master/src/main/scala/io/github/davidgregory084/TpolecatPlugin.scala) and all warnings (which this might be) are converted to errors.

For generic-extra that should be @ConfiguredJsonCodec now, to prevent confusion with the regular @JsonCodec.
What did you import?

Oh, sorry, didn't catch that this could be vanilla circe-generic.

Oh yeah, I didn't notice either.
For the record I imported import io.circe.generic.JsonCodec.

I've reopened it here: https://github.com/circe/circe/issues/1264


⚠ SceneTime has degraded performance

In 10609f0, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1262 ms

Resolved: SceneTime performance has improved in 61e8a6a after 8 minutes.


BONUS - order

Later The Chef would like to have a e-commerce part, where the customers could order their dishes and being delivered. But this part is not in his budget right now.

Feature cancelled

Feature cancelled


Add BeautifulSoupParser for typing.

Description
To avoid repeating same Literal definitions.
Checklist

[ ] CI passed

Sure, this makes sense. Could you consider reexporting the new type so that you can import it without accessing private subpackages?

Sure. Just a tiny question. What is the established practice here with all? I know it is for star imports, but do you put all stuff inside or just some selected top level stuff?

You should include only names that are part of the "public interface" of the package in __all__.

I will also add that the __all__ field is there primarily because some Python tooling uses it to discover the package's public interface.

@Pijukatel And I will add this - it's a nice read: https://mkdocstrings.github.io/griffe/guide/users/recommendations/public-apis/


Authenticate PR and link with issues and merge those pull requests.

I have closed this PR because there are no details explaining what the actual issue is.


feat: publish image on each commit

publish automatically the images using major arches that we find on images usually
Tested it there:
https://quay.io/repository/fbenoit/hello?tab=tags

QUAY_USERNAME and QUAY_PASSWORD need to be added as secrets to this repository using a quay.io bot account

@cevich PTAL

you can check labels on quay.io/fbenoit/hello image (I used the same workflow)

Nice!  I like that you link to the exact commit.
The only other thing I thought of, and this can be done in a followup-PR:
This repo isn't going to change much, but the image contents could use periodic refreshes.  Maybe have the job also run on a weekly or monthly or yearly basis?

Otherwise this LGTM.  @TomSweeneyRedHat ?

I'll provide a follow up PR
I would also get rid of alpine image for the build

LGTM
@cevich, as you mentioned needing to add secrets before merging, I'll let you push the shiny red merge button for this one.

And forgot my manners.  @benoitf TYVM for the work here, a very nice addition to this repository.

as you mentioned needing to add secrets

Oh right, I completely forgot.  Thanks for the reminder, I'll add them now.

First run: https://github.com/containers/PodmanHello/actions/runs/7799426811
Successful push.

I suppose that it is needed, every time the libc in the base image changes.


Remove incorrect checks for valid proof

It seems like the assumption that there needs to be at least one node per leaf wasn't correct, system tests will fail with these checks so I removed them again.
Additionally parallelisation of tests has been removed. make test already executed only one test in parallel with -p 1 if removed tests will become even more flaky. Instead I removed t.Parallel() from the tests to prevent them being executed in parallel accidentally.

Additionally parallelisation of tests has been removed. make test already executed only one test in parallel with -p 1 if removed tests will become even more flaky. Instead I removed t.Parallel() from the tests to prevent them being executed in parallel accidentally.

With -p 1, go will not run tests from many packages at the same time, but tests marked with t.Parallel() that are located in the same package can still be executed in parallel.


[ui] (Fabric) Updating guidance about Fabric UI control selection

Fixes #2283
This PR corrects the line recommending Fabric components your an add-in. It, instead, specifies that the given list is a general recommendation, instead of a more exclusionary list.

Docs Build status updates of commit 329646a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/design/office-ui-fabric.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Thanks @ElizabethSamuel-MSFT. Adding @Rick-Kirkham as a reviewer too (I'll forward you an internal thread with additional questions).

Docs Build status updates of commit efb0338:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/design/office-ui-fabric.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Why the task was judged error

1.2.0

q:
There is no error in running shell task. Why DS thinks the task is error

did you see worker server runtime log about this task?

did you see worker server runtime log about this task?

yes,

does all shell task failure? there is no special handle. if it's a yarn task, it also will get the final running result of the yarn, if yarn give failure, the shell task will also failure. you can see the exit code of this shell task in the worker server runtime log, the normal exit code is 0
by the way,  could you paste some script content if it's convenient for you

1、Same type of task

２、code

3、api log

The most important is worker log, may be it has ERROR or Exception

The most important is worker log, may be it has ERROR or Exception

yes, worker log about this task instance is very importent

The most important is worker log, may be it has ERROR or Exception

yes, worker log about this task instance is very importent

Sure enough, I ignored it，Is it possible that there is something wrong with my configuratio

The most important is worker log, may be it has ERROR or Exception

yes, worker log about this task instance is very importent

What's the problem with this error message

The most important is worker log, may be it has ERROR or Exception

yes, worker log about this task instance is very importent

What's the problem with this error message

#2491

have you solved this problem, if solved , please close the issue, thx

yarn.application.status.address  this parameter already set ?


X11 - Return frame position for Window.Position

What does the pull request do?
Makes Window.Position return the frame position of the window, instead of the client position.
What is the current behavior?
There's an issue with the Position reporting where setting the Position updates the Frame position of the window, but getting the Position returns the Client position. This causes jumps in position when the user updates the window position using a value returned from getting the Position.
What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes

Obsoletions / Deprecations

Fixed issues
Fixes #9972

You can test this PR using the following package version. 11.0.999-cibuild0032779-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0032798-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]


Traffic hang issue

Scenario:
Four NORDIC dev boards with ot-cli-ftd image. The image is based on the commit: 4e92a73. The topology is shown in the following figure. A is leader, B, C and D are routers.
A
|
B
/
C     D
Issue description:
Both the Node C and D are sending traffic to A at the same time. A moment later, the node A can't receive any packets from node C and D. After the traffic from C and D is stoped,  all the pings from node C , D and A to B fail.  Several minutes later, node B, C and D become leader.
After the traffic is stopped, I use the command "bufferinfo" to see the buffer information on node B:

bufferinfo
total: 128
free: 0
6lo send: 64 128
6lo reas: 0 0
ip6: 0 0
mpl: 0 0
mle: 0 0
arp: 0 0
coap: 0 0
coap secure: 0 0
application coap: 0 0
Done

The buffer of the node B is full all the time. After I debug the code, I find that the variable mSendBusy in class MeshForwarder is set to TRUE and its value never changed. Which causes messages are blocked in the queue.
Logs for reference:
4e92a73_A_rx_log.txt
4e92a73_B_log.txt
4e92a73_C_tx_log.txt
4e92a73_D_tx_log.txt
However, when I try the commit: 302c999, no traffic hang issue happens.
Logs for reference:
302c999_A_rx_log.txt
302c999_C_tx_log.txt
302c999_D_tx_log.txt
In this scenario, I'm using perf to generate traffic. Perf is a tool I wrote to test the performance of Openthread. It only call Timer, otMessage and otUdp API.

The topology:

Thank you for reporting this issue. We are looking at it.

We found the root cause in our radio driver. The fix will be available soon. One more time thanks for raising this and very detailed description! 👍

The fix is available here: https://github.com/NordicSemiconductor/nRF-IEEE-802.15.4-radio-driver/pull/91
We plan to merge it to OT repository next week (after weekly robustness testing).


fix(content-item-horizontal): update styles and layout

Related Ticket(s)
Fixes #7264
Description
Updates styles package to make content-item-horizontal and content-horizontal-with-media components match design specs
Outstanding Tasks

[x] Allow lists in component copy
[x] Allow inline links in component copy

These work as-is from the content-item-paragraph component.
Changelog
Changed

Updated styles of content-item-horizontal
Updated styles of content-item-horizontal-with-media

@kirbyevans I'm not able to make you a reviewer, but here's this PR.

@kirbyevans For columns the easiest way is probably to use the browser extension.
The inline links and lists styling are inherited from another component and will display the same as they do in content block media (default). I'm not sure if there's a way we want to prove that in this repository though? CC: @jeffchew @kennylam ?


Better react-i18n / Jest integration

Overview
This is a mix between feature request / bug report 😄 Right now, adding a new translation file doesn't invalidate the Babel cache.  So if we:

Create ./foo/FooComponent.jsx + ./foo/translations/en.json
Run Jest (adding FooComponent to the Jest cache)
Add ./foo/translations/fr.json
Add a test that depends on French translations
Run Jest 💥

Type

[x] Changes to existing features

Motivation
Stale translations have blocked CI for at least one significant Shopify webapp.  Can't share the details of that here, but the scenario was:

Someone moved translation files into a parent directory
Jest loaded the cached version of a component (that referenced the old translation files)
Many tests went 💥because they were trying to read from non-existent translation files

As discussed in Slack with @lemonmade and @michenly, I think we can tweak the Babel plugin to have slightly different behaviour in a Jest environment.
Instead of embedding translation files directly into the component, it can add a readdir('./translations') call, and use that as a source for available translations (or as a "look up the component tree" hint when no translations are found).

Just as a reminder for me, because I've forgotten a few times: it's not that the Babel transform would use readdir to get translations (it effectively already does), but that the code it adds as part of its transformation would do a readdir. With a runtime check like that, we can have the same logic in the 0 translation and >0 translation cases, which fixes the problem of those being different with the same cache key in the current approach.


Update for pyperformance's fixed manifest parsing

This manifest file can no longer explicitly specify default or all.  I don't think these are really used for anything here anyway, so just removing those sections makes these combinable with the pyperformance suite.

cool thanks!


interact with the platform through the lab client SDK

This only addresses the immediate fix.
This is still not ideal. From this small fix it felt not intuitive to start building the mode name by myself.
What if the #train  returned a training context - one that returns data about the process that just ran. Something like
  class ResultsContext(Enum):
    TRAINNING = 'training'
    CONVERSION = 'conversion'
    LAB_UPLOAD = 'lab_upload'

  class SgModel:
     ...
     def train(self, training_params: dict = dict()):  -> Dict[ResultsContext, dict]

That way, I'd just have to access the corresponding context in order to get the model name that the server returned....otherwise, what happens when tomorrow the server changes its logic and _1_1 suffixes won't be a thing anymore?

97% of the changes here are black related (formatting). The real change lays from line 57

FYI @shaydeci @ofrimasad The description is just an idea. Don't stick to the details of the implementation

@shaydeci why closing this

@shaydeci why closing this

Im closing it as it has been stale for a while, and I didn't really understand the importance of it (its also stated that this is just an idea?)
Once clarified and discussed we can reopen it, but we've been having too many stale PR's...

Yeah, the description is an idea that came as the result of the fix itself the PR is taking care of to a ticket you opened.


[question] reinforcement learning?

Hello,
Reinforcement Learning training takes a extremely long time to analyze. Even on fast/GPU hardware. Being able to filter only useful features can save a lot of training time. Sometimes days and weeks.
Is there any way to apply shap to the field of reinforcement learning? Or at least to gain any insight?

Any news about shap for RL models?


Allow setting up grpcreflection for dynamic schemas

Currently connectrpc.com/grpcreflect will not work with dynamic schemas.
It defers to protoregistry.GlobalFiles and even if I want to specify my own types, it is not trivial as I have to re-type all the things from under the hood to set up a custom Reflector.

Correction, I cannot create a custom reflector with staticNames being private.

@rauanmayemir, the Namer interface is a simple single-method. You don't need staticNames. You can just provide your own implementation.

type names []string
func (n names) Names() []string {
    return n
}

So I could actually inject my own implementation of Reflector, I'll try it then.

While I can easily re-implement the namer part, almost everything is needed to be re-implemented as well due to private types: reflector, resolver, options.

I don't really understand what you are trying to do. You can easily use this repo with dynamic schemas using NewReflector and passing WithExtensionResolver and WithDescriptorResolver options, to provide custom resolvers for your dynamic schemas. The custom Namer can be used to customize the names returned from ListServices requests.

Oh, let me try that. Yes, that's what I needed but only looked into the function implementations without accounting for options.

It turned out to be trivial, thank you. 🙌


chore: support button element as input type and form def element

Issue #, if available:
Description of changes:
add Button to FormInputType to support interaction in the form
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #614 (6486ffb) into tagged-release/forms-and-views (f3db596) will not change coverage.
The diff coverage is n/a.

@@                       Coverage Diff                       @@
##           tagged-release/forms-and-views     #614   +/-   ##
===============================================================
  Coverage                           90.10%   90.10%
===============================================================
  Files                                  92       92
  Lines                                3385     3385
  Branches                              919      919
===============================================================
  Hits                                 3050     3050
  Misses                                313      313
  Partials                               22       22

Impacted Files
Coverage Δ

packages/codegen-ui/lib/types/form/index.ts
100.00% <ø> (ø)

Continue to review full report at Codecov.

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

closed as this type has merged in


Queue function do not work in MacOS

multiprocessing.Queue() throws error in MacOS.

Thank you. We are continuously modifying on the code. My first proposed solution for this (and other small bugs) is to containerize the whole tool using Docker. The task is on list and we will do it soon (you can do it for your machine if this is urgent. Ubuntu OS is our recommendation).


S3 regional domain name value to support non us-east-1 deployments #47

Issue #47
Replacement of S3 domain name value with regional domain name value to support deployments outside of us-east-1.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thank you for your feedback! This has been merged into the new development branch: https://github.com/amazon-connect/voicemail-for-amazon-connect/tree/development


End to end encryption

This issue tracks support for end to end encryption in LiveKit ecosystem. The design goals are:

Consistent support across all LiveKit SDKs
Protocol to communicate metadata about Tracks' encryption status
Standard set of encryption algorithms (i.e. AEC-GCM)
API to support simple shared key encryption
Flexible API to allow clients to use more advanced key exchange techniques (i.e. double ratcheting algorithm)

Open issues

Firefox does not support RTCRtpScriptTransform. bug

Flexible API to allow clients to use more advanced key exchange techniques (i.e. double ratcheting algorithm)

This is exactly what I'm looking to do right now in a react native app. Jitsi has a recent blog about their journey to e2ee with react native and how their flexible client api's works here. FYI, I'm planning on using Matrix's vodozemac olm rust implementation, which is what Jitsi mentioned at the bottom of the article referenced above (they are planning to migrate to it).
I was planning to use Livekit until I realized that an e2ee api wasn't supported yet. In the other issue, you mentioned this was on the roadmap, but since I wasn't able to find it publicly, would you be able to provide me with an estimate as to when you expect to address this as the top priority? I would much prefer to use this over mediasoup.

We are currently working on this! It's one of the highest priority features for the team. There isn't a release date yet.

@davidzhao Thank you so much! Looking forward to it. The developer experience with Livekit is good enough that I will wait for e2ee support

Max from the community has a fork of the JS SDK that implements E2EE: https://github.com/invisv-privacy/client-sdk-js/

E2EE has just been merged in JS. It's also available in Flutter. Other platforms will follow shortly!

E2EE has just been merged in JS. It's also available in Flutter. Other platforms will follow shortly!

Thank you so much! This is really exciting :) Would love to see some information/guides/examples about how to use it in the docs!

PRs for native SDKs:

Android
Swift

An update on this, E2EE is available in all of our SDKs except for react-native. Given the general availability of the feature, I'm closing this issue. Will open a new issue under react-native

https://github.com/livekit/client-sdk-react-native/issues/96 for tracking React-Native implementation

@davidzhao Hi! Thanks for all the great work here!

Does E2EE for Livekit mean that the video itself is encrypted?

If the React Native SDK isn't available. How do you decide which rooms/users are using E2EE?

Hi @castig

Yes! each frame is encrypted on the client before getting sent over.
For folks that don't use react-native, this would be straight forward. If you are using react-native, you could look to see if the track is encrypted and notify the other side to disable encryption

Can we get some documentation for how E2EE works? Or at least some more examples, for instance there is no example for when everyone has their own key.
I am getting it to work and it looks great! But I am having some bugs and without documentation it is difficult to debug

@davidzhao Can we get some documentation for how E2EE works & how to configure?


Question:where can i find java-script built-in functions

Hello,
i'm looking for the definitions of built-in functions like util.printf

There is no printf in PDF.js. I think you are confusing PDF.js with another library. Our utils are mostly in https://github.com/mozilla/pdf.js/blob/master/src/shared/util.js.

what i meant is, javascript libraries used by the pdf reader mentioned here:https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_api_reference.pdf

PDF.js disables all JavaScript embedded in a PDF file for security reasons. The only exception is the print command to initiate a printing command, which is handled separately to simulate clicking the print button. Other JS is disabled and so far we do not intend to enable any other JS because of security concerns.

thanks alot for clarification .


the fancyimpute needs other packages?

When I install the fancyimpute in the linux without using the internet.
But I remember this fancyimpute needs some other package, such as scipy, tensorflow. But I can't get these informations from your github.
So, is it exit? And, can you show me the detial dependency packages? Thank you!

Sorry, I maybe find some messages about the dependency packages. which I can get the messages from the the requirement.txt and the setup.py ?


see if gcov and clang versions match

WIP

future note: draft PRs are not run through coverage. This is due to "branches: only:" section in the .travis file. Active PRs that have a base of master or develop are tested.
That said, I don't really think that was the original intent behind the "branches: only:" statement. Instead, I think the intent was to only update the doxygen after a successful merge to master. This portion of the .travis.yml file should be re-evaluated.

So looking into it, gcov comes with gcc (and I guess lcov is actually a GUI for gcov). Perhaps for that build where we do make coveralls, we should just switch to using gcc instead of clang? Then the versions should match.
As for the branches: only: in the .travis.yaml, we could remove that. Then we could do something like different build stages, where we have our testing stage and then another for updating doxygen.  And then make the doxygen stage conditional on the branch being master.

the cmake scripts which set up the coverage stuff is pretty brittle at the moment. There is a lot to do, but not worth it for this release. It works for now. Merging into develop should make the coverage report get better.


fix: should not hoist subquery if query is ordered by external columns

const result = await Post.include('comments').order('comments.id', 'desc').order('posts.id', 'desc').limit(1);

This query might retrives wrong result because the post with latest comments isn't necessarily the latest one, such as:

post_id
comment_id

1
3

2
2

3
1

Previous implementation will yield SQL like:
SELECT posts.*, comments.*
  FROM (SELECT * FROM posts ORDER BY id DESC)
    AS posts
  LEFT JOIN comments ON posts.id = comments.post_id
 ORDER BY comments.id desc

which retrives Post<#id 3>, but Post<#id 1> is the one with the latest comment.

Codecov Report

Merging #247 (7441fc9) into v1.x (89747f1) will increase coverage by 0.06%.
The diff coverage is 98.98%.

@@            Coverage Diff             @@
##             v1.x     #247      +/-   ##
==========================================
+ Coverage   97.25%   97.31%   +0.06%
==========================================
  Files          42       43       +1
  Lines        3096     3130      +34
==========================================
+ Hits         3011     3046      +35
+ Misses         85       84       -1

Impacted Files
Coverage Δ

src/drivers/mysql/schema.js
96.96% <ø> (ø)

src/drivers/postgres/attribute.js
100.00% <ø> (ø)

src/data_types.js
98.73% <95.00%> (-0.61%)
:arrow_down:

src/bone.js
97.27% <100.00%> (+0.03%)
:arrow_up:

src/collection.js
100.00% <100.00%> (ø)

src/drivers/abstract/spellbook.js
96.61% <100.00%> (+0.05%)
:arrow_up:

src/drivers/mysql/index.js
95.45% <100.00%> (+0.21%)
:arrow_up:

src/drivers/postgres/index.js
98.76% <100.00%> (+0.03%)
:arrow_up:

src/drivers/postgres/schema.js
100.00% <100.00%> (ø)

src/drivers/sqlite/data_types.js
100.00% <100.00%> (ø)

... and 9 more

Continue to review full report at Codecov.

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


(site) DependsOn does not document cross-namespace dependencies

Documentation issue:
https://fluxcd.io/flux/components/helm/helmreleases/#dependencies
This section has no mention of cross-namespace dependencies.
It is documented in the code tho:
https://github.com/fluxcd/helm-controller/pull/82/files

thanks @egorksv for noticing this. Do you mind opening a PR in https://github.com/fluxcd/website?

@souleb  the API docs are not in website but in this repo, they should contain this section as in KC API docs https://fluxcd.io/flux/components/kustomize/kustomizations/#cross-namespace-references


fix: data injection test flake

Description
fixes data injection test flake
Related Issue
Fixes https://github.com/defenseunicorns/zarf/issues/2360
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Other (security config, docs update, etc)

Checklist before merging

[x] Test, docs, adr added or updated as needed
[x] Contributor Guide Steps followed

Still seeing the flake. More investigation and experimentation needed
https://github.com/defenseunicorns/zarf/actions/runs/8175786653/job/22353838067?pr=2361#step:8:5656


[New game]: GSSOC '23: Flag Guess Game

🎮 Game Request
Game logic and basic description:
A multiplayer game where players take turns guessing the country based on its flag.
Tech Used:
HTML, CSS, JavaScript
Point down the features
Game points:

Simple and intuitive gameplay for multiplayer fun.

Flags from various countries to guess.

Colorful and responsive design.

Smooth transitions and hover effects for a visually appealing experience.

Easy-to-understand instructions and feedback messages.

The game can be easily customized by adding or modifying the flag list.

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @sujanrupu !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @sujanrupu ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


docs: reformat and small typo; add myself to AUTHORS

I like semantic newlines so please don’t remove them. :)
As for the authors list: I stopped keeping track by hand of them since it inadvertently lead to people being forgotten/added review cycles.  Would you mind removing the list altogether and link to https://github.com/hynek/vim-python-pep8-indent/graphs/contributors ?
But: please add yourself as the maintainer. ✨

I’m gonna close this, since the bulk of changes have to be reverted anyways.  Please open a new PR. :)

But: please add yourself as the maintainer. ✨

Thanks! But I was not sure how to rephrase it and it's not important for me, so I've left it out.


[BUG] 6.1.25 to 6.1.28 upgrade fails: "[ERROR]: client: etcd cluster is unavailable or misconfigured"

Describe the bug
Upgrades from 6.1.25 to 6.1.28 (and potentially other versions -- TBD) fail when they cannot connect to etcd after the upgrade.
To Reproduce
Install 6.1.25
Upgrade to 6.1.28
Monitor the install operation from the master and shortly you'll see:
$ sudo ./gravity status --operation-id=c993ed62-8608-4b2a-a909-16a196457c88
[ERROR]: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp <IP_ADDRESS>:2379: connect: connection refused

$

Alternatively, the following robotest scenario will recreate the issue:
upgrade={"flavor":"three","nodes":3,"role":"node","service_uid":997,"service_gid":994,"os":"redhat:7","installer_url":"s3://hub.gravitational.io/gravity/oss/app/telekube/6.1.28/linux/x86_64/telekube-6.1.28-linux-x86_64.tar","from":"s3://hub.gravitational.io/gravity/oss/app/telekube/6.1.25/linux/x86_64/telekube-6.1.25-linux-x86_64.tar"}

Expected behavior
I expected the upgrade to complete successfully.
Logs
robotest logs
Environment (please complete the following information):

OS [e.g. Redhat 7.4]: SUSE 12 sp5
Gravity [e.g. 5.5.4]: 6.1.25/6.1.28
Platform [e.g. Vmware, AWS]: GCP

Not sure why merging 1694 didn't close this automatically. Closing now.


Suggestion: Make output colorful

Hello.
chars works pretty well and really helps a lot. However, its output looks a little boring and different parts of output take a while to distinguish.
So it would be great if the output is colorful. How do you think?

I'm somewhat ambivalent on it - in my experience, color can help navigate dense information, and help clarify things that otherwise would take a lot of text to explain. On the other hand, they can make things harder for people who have trouble telling certain colors apart, especially if color is the only way that information is represented (I'm not colorblind myself, but some of my friends are - I want the tool to remain accessible to them). And then there's people who object to colorful output in general.
In terminal utilities, it's difficult to get colors truly "right", especially because people can pick arbitrary background colors and e.g., a scheme that works well on a dark terminal background can look completely unreadable on a light terminal.
So, I think it would make sense to include output colorization as an option, if we use it to highlight information that's also represented in text, and we don't go overboard - stick to the ANSI color scheme (16 colors) and avoid the red/green and blue/yellow tone ambiguity.


Numbers bug gametest

Describe the bug
God, my head hurts so much to think about the cause of the problem, it's me again, the person who has said on 2 occasions (bug reports) that Date did not work for me, today I realized doing even more proof that it is not really Date, is that gametest simply does not let me write large numbers, for example I am working on a ban and mute system, for this I need the timeStamp, I get it with Date.now() So far, everything is perfect, since it will return the correct Date.now(), I mean the Stamp time that is from January 1, 1970 to today, but if I do this: Date.now() +1 LITERALLY, just like adding that 1 to it, the number becomes directly:<PHONE_NUMBER> But why??? I don't understand why just by adding a 1 to the number that Date.now() gives me, that happens, I really need a solution, it says that in 1.19 beta they fixed the Date.now() thing The int32 thing, which was only limited to this one, I think it's true since before it didn't even return the real Date.now(), now it does return it but just by adding one more, it automatically becomes In this number that I already mentioned, another thing is that if I do this: new Date(Date.now()) or if I simply store the Date.now() in a variable and then in the parameter of new Date() I place it, although there It is not adding any 1 or more to it, it also returns the same number,<PHONE_NUMBER> and therefore it returns the same date as always, January 25, 1970, I have already tried in the browser in which Date works correctly and apparently this number is the time stamp of January 25January 1970, I hope you can please fix this soon or give me a solution if it is something with my device, I need an answer, a solution. One thing I don't understand about this, is why all the people I ask them it works correctly and they also do the same thing, even adding +180000 to the number that the Date.now gives or even typing bigger numbers :(
Smartphone (please complete the following information):

Device: [Xioami mi note 10 lite]
OS: [MIUI 13]
Browser [GOOGLE CHROME]
Version [e.g. 22]

I believe this should be fixed in current builds (probably since 1.19.10?)


Declaration of Glorand\Model\Settings\Traits\HasSettingsField::settings(): Glorand\Model\Settings\Contracts\SettingsManagerContract must be compatible with Glorand\Model\Settings\Traits\HasSettings::settings(): Glorand \Model\Settings\Managers\AbstractSettingsManager

my PHP version => 8.0, Laravel version => 8.53.1, laravel-model-settings package version => 4.2.2
i added Glorand\Model\Settings\Traits\HasSettingsField to my model and when run php artisan migrate get the error:
Declaration of Glorand\Model\Settings\Traits\HasSettingsField::settings(): Glorand\Model\Settings\Contracts\SettingsManagerContract must be compatible with Glorand\Model\Settings\Traits\HasSettings::settings(): Glorand \Model\Settings\Managers\AbstractSettingsManager

composer require glorand/laravel-model-settings:4.4.1 worked for me. Thank you.


Fix zoom in/out css issues for landing page and splash screen

Summary

Fix zoom in/out css issues for landing page and splash screen
How did you test this change?

[ ] Test(s) added
[ ] Manual testing (please provide screenshots/recordings)
[ ] No testing (please provide an explanation)

lets add videos zoom in/zoom out. thanks


REMINDER: query normal metadata from qc report from base subject id

currently making the assumption that normal subject ID shares the same base subject ID as tumor and has "_N" appended. although this will likely break and I'll need to continually jury-rig things, i have nothing else to work from right now. in any case, need to query qc report for normal project sm tag, project, etc. probably best to make this standard for all steps where I i am querying normal subject id.

when migrating to new sample input manifest this will no longer be necessary


[QUESTION] Where I can find the CI service?

Is this project using continuous integration services (e.g., Travis-CI or Jenkings)? Or has it used at any point of its lifetime?

This project has never, but my fork does use Travis
On Tue 19. Mar 2019 at 14:16, Gustavo Sizílio Nery<EMAIL_ADDRESS>wrote:

Is this project using continuous integration services (e.g., Travis-CI or
Jenkings)? Or has it used at any point of its lifetime?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/skwp/dotfiles/issues/818, or mute the thread
https://github.com/notifications/unsubscribe-auth/AARQhCq6ZALgH_W_So6Lr2VElafZJAjiks5vYVOUgaJpZM4b9IoU
.

Thanks very much!


Weird clicking sound at the end of playing when using 8 bits for a RawSourceWaveStream

I'm using example code from here: https://github.com/naudio/NAudio/blob/master/Docs/RawSourceWaveStream.md
            var sampleRate = 16000;
            var frequency = 500;
            var amplitude = 0.2;
            var seconds = 2;

            var raw = new byte[sampleRate * seconds * 2];

            var multiple = 2.0*frequency/sampleRate;
            for (int n = 0; n < sampleRate * seconds; n++)
            {
                var sampleSaw = ((n*multiple)%2) - 1;
                var sampleValue = sampleSaw > 0 ? amplitude : -amplitude;
                var sample = (short)(sampleValue * Int16.MaxValue);
                var bytes = BitConverter.GetBytes(sample);
                raw[n*2] = bytes[0];
                raw[n*2 + 1] = bytes[1];
            }

            var ms = new MemoryStream(raw);
            var rs = new RawSourceWaveStream(ms, new WaveFormat(sampleRate, 16, 1));
            var wo = new WaveOutEvent();
            wo.Init(rs);
            wo.Play();
            while (wo.PlaybackState == PlaybackState.Playing)
            {
                Thread.Sleep(500);
            }
            wo.Dispose();

The above plays fine, however when I change the RawSourceWaveStream to use 8 instead of 16 bits, like:
var rs = new RawSourceWaveStream(ms, new WaveFormat(sampleRate, 8, 1));

I get a weird "click" sound at the very end, similar to someone hanging up a phone or someone pulling out the cable on a guitar, but it only happens when using 8 bits.With 16 bits, it's perfectly fine and has no weirdness at the end.
Problem is that I have raw PCM that is designed for 11025Hz at 8 bits.
Does the above code do that for you? I don't know if I ran into a bug or not or if this is intention and how it's supposed to work.

Update: When I convert my data to 16 bits using something like
out = (in - 0x80) << 8);

It ends up playing fine without the clicking sound. This means I have a workaround for the time being.


scalameta: 1.9.7 -> 1.9.9

Motivation for this change
This version of scalameta supports scala 3.0.0-M2 which again supports Scala.js, so this is a big improvement. I have used it locally for several days, it has worked without any problems. All in all, this should just be a simple upgrade.
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@jonringer could you merge this or find someone who can? Would be nice to get it in before any merge conflicts occur. It created some git complexity for me last time. I think this should be very straight forward.

This can be closed, I am working on a new update to 1.9.10, that will be PR'd in just a moment.


Test: TerminalExitStatus.reason proposed API

Refs: #130231

[x] macOS @aeschli
[x] linux @connor4312
[x] windows @luabud

Complexity: 2
Authors: @Tyriar, @meganrogge
Create Issue

Test this new extension API by checking Terminal.exitStatus.reason after exiting a terminal in different ways. The terminal doesn't necessarily need to be created by an extension
declare module 'vscode' {

	// https://github.com/microsoft/vscode/issues/130231

	/**
	 * Terminal exit reason kind.
	 */
	export enum TerminalExitReason {
		/**
		 * Unknow reason.
		 */
		Unknown = 0,

		/**
		 * The window closed/reloaded.
		 */
		Shutdown = 1,

		/**
		 * The shell process exited.
		 */
		Process = 2,

		/**
		 * The user closed the terminal.
		 */
		User = 3,

		/**
		 * An extension disposed the terminal.
		 */
		Extension = 4,
	}

	export interface TerminalExitStatus {
		/**
		 * The reason that triggered the exit of a terminal.
		 */
		readonly reason: TerminalExitReason;
	}

}

I wasn't able to generate the test unknown case but other than that, looked great to me :)


Build failed - IndexedDB unit test failure

Build: https://dev.azure.com/monacotools/a6d41577-0fa3-498e-af22-257312ff0545/_build/results?buildId=272904
Changes: https://github.com/Microsoft/vscode/compare/da4c909...273d65a
looks like this has been identified as flaky in the past.
 1) IndexedDB
       "before each" hook for "runInTransaction":

      + expected - actual

  Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (vs/base/test/browser/indexedDB.test)

  2) IndexedDB
       "after each" hook for "runInTransaction":

      + expected - actual

  TypeError: Cannot read properties of undefined (reading 'dispose')
      at Context.<anonymous> (file:///mnt/vss/_work/1/s/out-build/vs/base/test/common/utils.js:59:19)

Did not see this for a while. Hence closing it


Unable to find stream url

Windows 11 system,  Python 3.10.9， TIktok-Live-Recorder V3.6
Command : python main.py -user long0481gjc -output D:/ -ffmpeg
Output:
Expecting value: line 1 column 1 (char 0)
[-] Unable to find stream url.
I dont know whats wrong

Sometimes tiktok does not provide the cdn of the stream. Unfortunately, I haven't found any solutions yet


Stale data in SelfObservable result

Hi,
I have two entities A and B. There is a ManyToOne relationship from A to B. I have added a selfObservable on a query which returns all the rows in table A.
Now, whenever I update any row of table B, the selfObservable fires the query, but the result it gives doesn't have the latest values, it still gives me the value before updating, though the value was successfully updated in the DB.
And if I try to query the value of that row in table B just after updating it, then the query fired from selfObservable shows me the correct latest value.
I am using the 1.1.1 version on Android.

Is it possible your making multiple modifications the first that would not affect the results of your query? That's usually common, the result will trigger even in any possible change to the table, not necessarily the query. If you're using Rxjava you could also use something debounce if there are too frequent notifications.

Hey,

I have ensured that my selfObservable method is not getting called due to any other update in the db.
Also, in the entire process, the selfObservable should get fired sometime at least with the updated values right?
If I ensure that I am making a query to get the same row of B, that was updated(before the selfObservable is called, by running it on the same thread or delaying the selfObservable thread), it reflects the new value in the selfObservable method, which suggests there might be some issue in the library?
P.S.: If I delay the query to get the row, to run after the selfObservable thread, or to get a different row, then the same stale data is received in the selfObservable method.

Thanks.

For 2. yes it is fired after a transaction is committed to the database. For 3. Are you saying you're not getting the data you want no matter how you use the observable? (e.g. different scheduler)

Closing for now, please post back if you have more info


[Bug]: Button widget overflows from the canvas even on preview mode

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Button widget overflows from canvas boundary even on preview mode as seen in the image
Steps To Reproduce

Public Sample App
No response
Environment
Deploy Preview
Severity
High (Blocker to building or releasing)
Issue video log
No response
Version
cloud

Pls Attach video if possible  @ramsaptami


Sync is consistently off by 4 lines

I've used this on many machines with no issues, but after a new install on a new machine, the sync is consistently off by 4 lines - if I start at line 1 on both left and right files, and scroll one line at a time with the mouse wheel (set to 1 line at a time), the left file doesn't start scrolling until line 6 on the right, at which point the left window is at line 2, and it consistently stays offset by 4.

Note, I confirmed this is happening on all machines now with latest VS Code

Per https://github.com/dqisme/vscode-sync-scroll/issues/36, I confirmed this is due to Sticky Scroll being enabled, which looks like it is now enabled by default, thus the change in behavior.

Was just looking for a fix to this. Thank you!

any fix?

I have this issue too

I note a slight 2-3 line offset when using the offset mode. Otherwise, I can't reproduce without having sticky scrolling turned on. If you do have it turned off (see below) and you're still experiencing it, additional information would be greatly appreciated.
Please check that you've disabled editor.stickyScroll.enabled as a temporary solution, as was mentioned before.


Enable custom plugins

I'm a huge fan of this library, especially the MDX support 🎉, but I'd like to be able to provide my own extensions (such as super-fancy code blocks with all the bells and whistles and support for fun things like Mermaid diagrams). As far as I can tell, there isn't currently a way to do that. If I'm wrong and there is a way to do that, please let me know and I'll close this 😄 But if this isn't currently possible, I'd like to know if you consider that a non-goal for the project. If it is a non-goal, I'm happy to close this and explore other options. But if you're open to that, I'm happy to help.

Thanks!
Extensions for me (and as this extends micromark/mdast/remark/etc, I’d like to stick with those terms) mean extending the syntax of markdown with custom things. E.g., JSX, math with dollars, etc.
Plugins mean transforming the AST.
The first is as far as I understand impossible in Rust. The extensibility needed to support extensions is not there in Rust. None of the other rust markdown parsers that I know support them either.
The second can be supported. Here’s a PR on the MDX repo: https://github.com/wooorm/mdxjs-rs/pull/8. Something like that can be made on top of this (hence its there).
Luckily your examples fall in this plugin category.
I want to develop such features based on needs of people that know the Rust ecosystem, instead of baking it in immediately. So I’d like to hear some ideas and have discussions first :)

@wooorm Oh yes, I definitely mean plugins built on top of a provided AST 😄 I've updated the issue title to reflect that. Extensions are officially above my pay grade 🤣
I think it'd be nice to be able to specify plugins without too much extra plumbing. Maybe something like this:
let mut options = Options::default();
options.custom_plugins = vec![
    fancy_code_blocks,
    mermaid_diagrams,
];
let result = to_html_with_options("~hi~hello!", &options)?;

Or another option, of course, would be to see if #8 lands and I can just use mdxjs directly (or shamelessly copy that code).

rather than via MDX

MDX also allows the vanilla markdown format. However, it still compiles to a string of JS, not a string of HTML.

that's basically the mechanism I'd love to see in this lib.

This project here currently is positioned a bit lower than that. You can get a string of HTML out directly (no ASTs), or you can get an AST (which you can then do whatever with yourself)

Extensions for me...mean extending the syntax of markdown with custom things. E.g., JSX, math with dollars, etc.
The first is as far as I understand impossible in Rust. The extensibility needed to support extensions is not there in Rust. None of the other rust markdown parsers that I know support them either.

I am totally new to Rust, so I could very well be wrong.  But it seems like https://github.com/rlidwka/markdown-it.rs/tree/master/src/plugins supports adding extensions to the language, as opposed to just modifying the AST.

@digitalmoksha Oh wow, this may just be perfect for my use case! Thanks!

@wooorm I haven't played with trying to add this to markdown-rs yet (and don't know if/when I'll have time to), but a design that I find quite powerful is the one exposed by pulldown-cmark: its public API for generating HTML expressly operates against the stream of syntax "events" it emits—the internals of how that works are extremely similar to the way that parser::parse(input, options) works in this library, but in pulldown-cmark, since the event stream exposed in the public API, and carry the data which makes up the node, you can walk that iterator and produce a new collection of iterable Events from it. This is super useful if, for example, you want to do inline syntax highlighting using Syntect, you can do that by transforming the stream of Events and then handing off the transformed stream to push_html(output_buffer, events_iterator).
I recognize that one large different is that this crate's to_html does not operate on its AST: unlike pulldown-cmark, the Event types here are different from the AST. However, the result is that if someone wants to do that kind of thing, they have to (a) materialize the AST, as the normal to_html does not, and then (b) reimplement to_html on top of it. (Alternatively, only operate with the final, already-processed HTML, but that's a much worse path performance-wise than operating on a Markdown AST because it means you have to parse the HTML!)
I totally get why you don't have the to_html() function use the AST: Why pay for the cost of reifying the AST if you can just skip it and render HTML directly? But if you want to use markdown-rs as a library, not having that exposed makes it much less usable.

Caveat to all of this: I like this library's approach so much that I may end up implementing what I want using its mdast and doing just that—it's far more approachable than trying to implement "standard" footnotes in pulldow-cmark, which I have not managed to find a way to do without rewriting huge swaths of the lex-and-parse stuff (…which I really do not want to do)!

I think the way to go about it is doing the same as what we do in JS:

https://github.com/wooorm/mdxjs-rs/blob/e90ad3d49ba067f043f83c90e0e144c1f0493ae6/src/mdast_util_to_hast.rs#L82
implement hast_util_to_html, like https://github.com/wooorm/mdxjs-rs/blob/e90ad3d49ba067f043f83c90e0e144c1f0493ae6/src/hast_util_to_swc.rs#L81, but instead a copy of https://github.com/syntax-tree/hast-util-to-html/blob/3c9469abbb1ddd576e93387e37434c0f4d1db6ef/lib/index.js#L24

And to have plugins operate on either mdast or on hast!

That definitely seems reasonable as a design, though I will note that it also comes with non-trivial performance overhead (lots of extra copies and allocations for the AST→AST transforms)! It's quite possible that this is already in the "it's more than fast enough" bucket such that it doesn't especially matter, though.

non-trivial performance overhead

This seems more strongly worded than what I’d think.
I mean, events are also objects, that are mapped. But they are terrible to work with. ASTs are great to work with.
There is one mapping that requires copies: markdown AST -> HTML AST.
But other than that, AST transforms do not need extra copies?
Having spent 10 years on ASTs for markdown in the JavaScript world, I’m pretty convinced that ASTs and plugins are the way to go about it.
See also https://github.com/wooorm/mdxjs-rs/pull/27


The Miro adapter should automatically scale its DynamoDB capacity

This is moot, because the Miro preprocessor pipeline is unlikely to ever be used again.


Don't Merge! PR real time test for target branch full build

Docs Build status updates of commit e69d595:
:clock10: Pending: waiting for processors (15 builds ahead of you)
:warning: Docs Build is busy, currently there are 15 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit e69d595:
:clock10: Full build: the average full build time is 7 min(s) 28 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit e69d595:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Reduse size of build:prod

Id like to know what is all the svg, woff2, and all the files that is not .js/.css that in the dist folder?
I delete all and i have only two error in network  tab in chrom dev window.
So do we need all those files?
Another question is about the theam, Is it possible to load only the defoult theam and remove all others completly from the project?
Id like the build:prod size to be minimal as possiblle
i work with the starter kit
Thank you

Same here, I would love to know a solution to this too!


FindUUID: Export include path as expected by Ignition Libraries

With this fix, UUID headers are correctly found even if UUID is not installed in a system prefix.
Fix https://github.com/ignitionrobotics/ign-cmake/issues/103 .

I just realized that this patch is not ideal. If someone calls multiple times find_package(UUID), /usr is also added to the include directories,  and at some point get_filename_component(include_dir_parent "/" DIRECTORY) is called. It is probably  better to first check if the include directory ends with uuid  before adding its parent directory.

@osrf-jenkins run tests please

@traversaro , from your last comment, I assume you're still working on this PR, right?

@osrf-jenkins run tests please

@traversaro , from your last comment, I assume you're still working on this PR, right?

Yes, I need to do a small modification to it, I hope to be able to add it today or tomorrow (CEST).

@traversaro , from your last comment, I assume you're still working on this PR, right?

Yes, I need to do a small modification to it, I hope to be able to add it today or tomorrow (CEST).

The updated version that does not suffer the problems described in https://github.com/ignitionrobotics/ign-cmake/pull/104#issuecomment-657433720 has been pushed to the PR.


Configure a secure Oracle NoSQL Database CE installation

This PR updates with some improvements to the Oracle NoSQL CE image.
create and configure a secure Oracle NoSQL Database CE installation
References

https://community.oracle.com/tech/developers/discussion/4496876

Signed-off-by: Dario Vega<EMAIL_ADDRESS>

@mikebrey any updates on this?

Not yet – expect to have something by next week.
From: Avi Miller @.>
Sent: Monday, October 3, 2022 4:29 PM
To: oracle/docker-images @.>
Cc: Michael Brey @.>; Mention @.>
Subject: [External] : Re: [oracle/docker-images] Configure a secure Oracle NoSQL Database CE installation (PR #2439)
@mikebreyhttps://urldefense.com/v3/__https:/github.com/mikebrey__;!!ACWV5N9M2RV99hQ!J7k0ctHdxxHqJmZ4DIJxAlE3-GRL__dyhLty7HK4EM8FZJMgWDqpFvqqBphWywAG3hv_i4jHJYRa7e5k1mk6iSTGVCA$ any updates on this?
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/oracle/docker-images/pull/2439*issuecomment-1266135254__;Iw!!ACWV5N9M2RV99hQ!J7k0ctHdxxHqJmZ4DIJxAlE3-GRL__dyhLty7HK4EM8FZJMgWDqpFvqqBphWywAG3hv_i4jHJYRa7e5k1mk6_URjE4E$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/ALOW4QLV6LGHFLJW4OWCPOLWBNMZBANCNFSM57GKZYZA__;!!ACWV5N9M2RV99hQ!J7k0ctHdxxHqJmZ4DIJxAlE3-GRL__dyhLty7HK4EM8FZJMgWDqpFvqqBphWywAG3hv_i4jHJYRa7e5k1mk6Z8fdek4$.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

@mikebrey  can you provide the last update from your meeting with security team?

@Djelibeybi  and @dario-vega  I had a discussion with the database security lead on this.    Apologies for delay in getting this posted but last week I was at CloudWorld.     Security was ok with us having both secure and non-secure versions out there.   This is single process versions of the product.   Security wanted us to "push" the use of the secure version which we can do in the README.

Thanks @mikebrey. Could you please update this PR with the appropriate wording added to the README.md and then click "Ready for review".

@Djelibeybi   Yes - I will take care of that.

@Djelibeybi, Can we review it again?

There is a button next to my name that re-requests a review on GitHub. Please push that button so that this PR returns to my queue.

Please address the linting issues for both the Markdown files and shell scripts

Please resolve the issues raised by the Markdown and shell script linters.

done

Needs a code owner approval from @mikebrey after which it can be merged.


Add pre-release and/or build to dev release semvers

Currently both development and staging GitHub workflows may build the same semantic version release. This causes issues with caching in K8s as images are tagged with these semantic versions. Force uniqueness using something like the following version info for the development environment.
>>> ver = semver.VersionInfo.parse('1.2.3-pre.2+build.4')
>>> ver.major
1
>>> ver.minor
2
>>> ver.patch
3
>>> ver.prerelease
'pre.2'
>>> ver.build
'build.4'

This change will need to be added to .github/workflows/workflow-props.yml.


Error in Bio.Application and how to build better command line with the subprocess module

Dear PhaBox team,
Thanks for such an amazing tool. However, I had a problem when testing four functions of PhaBox. I was suggested to build a command line with the subprocess module. Would you please give some advice on the new command or other ways to solve this problem? Thank you, and I am looking forward to your recent reply!
My commands are:
export PATH=$PATH:/share/home/zhuyy/software/PhaBOX-main
run PhaMer
python /share/home/zhuyy/software/PhaBOX-main/PhaMer_single.py --contigs /share/home/zhuyy/software/PhaBOX-main/test_contigs.fa --threads 48 --len 3000 --rootpth simple_test --out PhaMer_out/ --dbdir database/ --parampth parameters/ --scriptpth scripts/
run PhaTYP
python /share/home/zhuyy/software/PhaBOX-main/PhaTYP_single.py --contigs /share/home/zhuyy/software/PhaBOX-main/test_contigs.fa --threads 48 --len 3000 --rootpth simple_test --out PhaTYP_out/ --dbdir database/ --parampth parameters/ --scriptpth scripts/
run PhaGCN
python /share/home/zhuyy/software/PhaBOX-main/PhaGCN_single.py --contigs /share/home/zhuyy/software/PhaBOX-main/test_contigs.fa --threads 48 --len 3000 --rootpth simple_test --out PhaGCN_out/ --dbdir database/ --parampth parameters/ --scriptpth scripts/
run CHERRY
python /share/home/zhuyy/software/PhaBOX-main/Cherry_single.py --contigs /share/home/zhuyy/software/PhaBOX-main/test_contigs.fa --threads 48 --len 3000 --rootpth simple_test --out Cherry_out/ --dbdir database/ --parampth parameters/ --scriptpth scripts/
And the error message is as follows:
/share/home/zhuyy/anaconda3/lib/python3.11/site-packages/Bio/Application/init.py:40: BiopythonDeprecationWarning: The Bio.Application modules and modules relying on it have been deprecated.
Due to the on going maintenance burden of keeping command line application
wrappers up to date, we have decided to deprecate and eventually remove these
modules.
We instead now recommend building your command line and invoking it directly
with the subprocess module.
Best wishes,
Xuying Zhu

Hi there,
This is just a warning message and you do not need to do anything. The program can be run correctly.
If you want to remove warning message, you can downgrade your python environment or reinstall it using
conda create -n PhaBOX phabox=1.1 -c bioconda -c conda-forge -c pytorch -c jyshang2

Best,
Jiayu

Hi Jiayu,
Thank you for your reply. I have reinstalled it and run the program successfully.
Best wishes,
Xuying Zhu

Hi Xuying,
Our PhaBOX has been upgraded into 2.0 version with more powerful usage. Please check the guidelines!
Best,
Jiayu

Hi Jiayu,
Thank you for telling me the updated information. I will keep using this useful tool!
Best wishes,
Xuying Zhu

Hi Jiayu,
Thank you for telling me the updated information. I will keep using this helpful tool!
Best wishes,
Xuying Zhu


Add Missing Queue DAO API

After merging PR #315, there was a new API that was added on the QueueDAO that was missing when the PR was merged.
This PR is to add the missing API.

Hi @v1r3n @vikramsingh2104
Please review/merge the fix following the merge of PR #315 that introduced a build failure


Repository

✋

IndexableEntity maybe it should be something like uid() (baseline) instead of getter style method?
ReadRepository and WriteRepository need to rethink method names.
RecordableAbstractEntity will be delivered depending on 1. 2. decisions.

IndexableEntity - I'd probably go with the first (baseline style) as if we're using get**** we may have a collision with a field name (for example getIndex would be good choice, but then we can't have field named index) - so uid() or uniqueId() etc would be my choice.
Don't think there's an issue with naming - if you really don't like you could go with PersistRepo... or PersistenceRepo... and RetrievalRepo...
RecordableEntity - I'd maybe consider renaming to PersistableEntity

class Loan extends AbstractEntity implements PersistableEntity {

}

@wnowicki

On point 3. - i'd also maybe consider just Persistable
class Loan extends AbstractEntity implements Persistable {

}

If there is a possibility that using a getter will may cause a collision as pointed by Sean then don't use it otherwise the current implementation is alright .
As long as the class name is a reasonable noun the naming shouldn't matter though ReadRepository and WriteRepository do sound like verbs.

Not much I can think so say, other than I prefer getId() to uid().

happy with uid() but we need as well something on IndexableEntity to set index so:

uid($id = null) for getting and setting
or getId() and setId($id)

So stick to the current names
Happy to change the name for one that team will agree

@srleach @EvanBarbour3

1: I'm mostly concerned about collisions with legitimate fields on the entity when using the setField and getField pattern for the ID. By the above suggestions, I'd go with providing a function uid() on the entity as follows:
(pseudocode)
protected $uidField = 'id';

public function uid($id - null){

    if (is_null($id)) {
        return     $this->{'get' . NameHelper:lowerToSnake($this->uidField)}();
    }

    return $this->{'set' . NameHelper:lowerToSnake($this->uidField)}($id);
}

This means to set it as indexable, we need to set the property `protected $uidField = 'id';`

2: :+1

3: My suggestion is PersistableEntity

Adjective
persistable (not comparable)
(computing) That can be made to persist; permanent.
😹

@srleach