SimCLR for specific domain

Hello!
I've been trying to use this library for a downstream task of segmentation.
I want to use SimCLR. I've been looking at the main_pretrain.py file and there was something that got me confused.
What's the idea behind the num_crops parameter? Shouldn't we, for each image, augment it only once, and use that in the forward pass?
My understanding is that for each image in our dataset, and implementing a custom Dataset, what the __getitem__ would return would be a tuple, with the original image and the transformed one. When isn't this the case? :)
This is the augmentations file I have:
- mean: 52.722780748721
  std:<PHONE_NUMBER>715541
  rrc:
    enabled: False
    crop_min_scale: 0.08
    crop_max_scale: 1.0
  color_jitter:
    prob: 0.0
    brightness: 0.8
    contrast: 0.8
    saturation: 0.8
    hue: 0.0
  grayscale:
    prob: 0.0
  gaussian_blur:
    prob: 0.0
  solarization:
    prob: 0.0
  equalization:
    prob: 0.0
  horizontal_flip:
    prob: 1.0
  crop_size: [224,224]
  num_crops: 1

- mean: 52.722780748721
  std:<PHONE_NUMBER>715541
  rrc:
    enabled: False
  color_jitter:
    prob: 0.0
  grayscale:
    prob: 0.0
  gaussian_blur:
    prob: 0.0
  solarization:
    prob: 0.0
  equalization:
    prob: 0.0
  horizontal_flip:
    prob: 0.0
  crop_size: [224,224]
  num_crops: 1

I'm resizing all images to size (224,244).
Thank you so much!

Hi. num_crops is a parameter that control the number of times an augmentation pipeline is applied. This is specially useful because it allows us to define symmetric pipelines (as the example of SimCLR in the repo), asymmetric pipelines (BYOL-style) or even multi-crop (creating 2/3 pipelines and controlling the parameters separately). In the config that you shared, only a single image is generated. Also note that you will never use the original image, you will always use (at least) 2 augmented versions of the image.

Hi, thank you for the help!
Regarding the example I gave, what would I need to change in order to use the original image?
Also, still regarding the pipelines, how does it affect the batch? In a case where we have a batch size = 128, and an assymetric pipeline with, let's say, a first branch with num_crops = 5 and the second branch with num_crops = 10 how would the batch look like?
My understanding is that the batch will have 128 random images (if using a Random Sampler), that come from the dataloader. Then, it will be in the forward pass that the num_crops will have an impact.
Sorry for the lack of clarity. If needed I can try to be more precise in my questions.
Thank you for the help in advance!

Sorry for the misunderstanding. In your config, the second image is the original one. I'm just confused by your mean and std values.
If your batch is 128 and you have a single pipeline with 2 crops, you will have access to (X1, X2), where both have 128 images. Note that X1[i] and X2[i] corresponds to different augmentations of the same image.
Having more/asymmetric pipelines will just increase the number of X that you have (and it won't be more nested). For instance, with 3 pipelines, with 2, 3 and 1 crops, respectively, you will have X = (X1, X2, X3, X4, X5, X6), where X1 and X2 are generated by the first pipeline, X3, X4 and X5 by the second and X6 by the third.

Yeah, sorry, my config file wasn't very clear 😅 .
I now have 2 questions:

Regardless of the number of crops or pipelines, if the total number of images (X1...Xn) is more than 2, how does SimCLR handle it?
This might not be related with solo-learn, but, in any of your experiments, have you been able to have a loss less than 1 to SimCLR?  I seem to be stuck at 1. I've already tried with different batch sizes, augmentations and hyperparameters.

No worries, actually my mistake.
1- SimCLR is one of the methods that we support multicrop. When computing the loss, we rely on creating a square matrix of (batch_size * augs) that tells us which elements are positives and which are negatives. We use a set of dummy unique indexes and then leverage them to construct the matrix.
2- Don't think you can get values lower than 1. This is also not necessarily a good thing as you could just be memorizing all examples. Checked my old runs and they are all around ~2 it convergence.

Theoretically you could have values lower than 1 (cross entropy lower bound is 0), especially with smaller batch size and temperature, but the training loss is not a very significant metric to predict the performance of the model. For instance, collapsed solutions might have loss=0 but random accuracy on the val set.

Just to clarify, I said you cannot get values lower than 1 on the datasets that we support and have a working model.

Few free to re-open if you have any questions.


Types conversion in Binding: Binding to TimeSpan: "Could not convert '00:00:10' to 'TimeSpan'."

Not sure whether it bug or feature.
MCVE:
<TextBox Text="{Binding TimeSpan}" />

public TimeSpan TimeSpan { get; set; } = TimeSpan.FromSeconds(10);

produces the next error:
[Binding] Error in binding to "Avalonia.Controls.TextBox"."Text": "Could not convert '00:00:00' to 'TimeSpan'." (Avalonia.Controls.TextBox #13256970)

Version: 0.9.3
Additional info:
works fine for TextBlock in Avalonia
works fine in WPF both for TextBox and TextBlock

Seems that TypeUtilities.TryConvert doesn't try to use TypeConverters, will fix.


be noisy about unexpected timeline state transitions + don't do Active=>Active transition

See commit messages, intended for merge without squash.

Rebased to get the fix for #3385

Rebased


ListView reverse won't reverse the list in Android

Description
Using reverse=True in a ListView only works in Windows(using flet main.py):

, but won't reverse the list in Android(using flet main.py --android)

Here we have dark colored text(self.history) & lighter colored text(self.text)
layout code:
self.history = ft.Text(
            value="",
            size=20,
            text_align="right",
            color=COLORS["hint_text"],
        )
self.text = ft.Text(
            value="",
            size=20,
            text_align="right",
            color=COLORS["text"],
        )

            ft.ListView(
                            controls=[
                                self.history,
                                self.text
                            ],
                            reverse=True,
                        ),

Environment:
Windows version: 11
Flet version: 0.20
Android version: 13
Device: Xiaomi Poco f4

The issue is because this reverse property was introduced in v0.19.0, and the SDK version of the Flet mobile app is lower (0.17.0 if not mistaken).
For short, the Flet app needs an update. Watch this issue:


Restore doesn't work well

Describe the Bug
Hi,
I Save my flow before to update the nodes/edges (remove/add some edges and nodes)
and on pane Click I restore the original flow.
after the restore the positions of nodes and edges is not well restored. when the page is resized, the edges and nodes don't seems to fit the view. The smooth edge looks curved a little bit to connect to the fixed node's position.
Your Example Website or App
here below the code
note that I'm using dagree for the layouting part
const nodeTypes: NodeTypes = {
  customNode: CustomNode,
};

const edgeTypes: EdgeTypes = {
  customEdge: CustomEdge
};

const flowKey = 'example-flow';

const SaveRestoreComponent = (props) => {
  const [reactflowInstance, setReactflowInstance] = useState<ReactFlowInstance>(null);
  const [nodes, setNodes, onNodesChange] = useNodesState<>([]);
  const [edges, setEdges, onEdgesChange] = useEdgesState<>([]);
  const { setViewport } = useReactFlow();

  const handleResize = useCallback(() => {
    reactflowInstance && reactflowInstance.fitView();
  }, [reactflowInstance]);

  const onSave = useCallback(() => {
    if (reactflowInstance) {
      const flow = reactflowInstance.toObject();
      localStorage.setItem(flowKey, JSON.stringify(flow));
    }
  }, [reactflowInstance]);

  const onInit = useCallback(
    (flowInstance: ReactFlowInstance) => {

      setNodes([...props.nodes]);
      setEdges([...props.edges]);

      if (!reactflowInstance) {
        setReactflowInstance(flowInstance);
      }
    },
    [props.nodes, props.edges, setNodes, setEdges, reactflowInstance]
  );

  const onRestore = useCallback(() => {
    const restoreFlow = async () => {

      const flow = JSON.parse(localStorage.getItem(flowKey));

      if (flow) {
        const { x = 0, y = 0, zoom = 1 } = flow.viewport;
        setNodes(flow.nodes || []);
        setEdges(flow.edges || []);
        setViewport({ x, y, zoom });

        updateElements(flow.nodes, flow.edges);
      }
    };

    restoreFlow();
  }, [setEdges, setNodes, setViewport]);

  const onNodeClick = useCallback((event: React.MouseEvent, node) => {

     onSave();
     const {nodes, edges} = updateFlow(node);
     setNodes([...nodes]);
     setEdges([...edges]);

    },[onSave, setEdges, setNodes]
  );

  const onPaneClick = useCallback(
    (event: React.MouseEvent) => {
        onRestore();
    },
    [onRestore]
  );

  useEffect(() => {
    window.addEventListener('resize', handleResize);
    reactflowInstance && reactflowInstance.fitView();
    return () => window.removeEventListener('resize', handleResize);
  }, [handleResize, reactflowInstance]);

  return (
    <ReactFlow
      nodes={nodes}
      edges={edges}
      nodeTypes={nodeTypes}
      edgeTypes={edgeTypes}
      onNodeClick={onNodeClick}
      onPaneClick={onPaneClick}
      onInit={onInit}
      onNodesChange={onNodesChange}
      onEdgesChange={onEdgesChange}
      minZoom={1}
      fitView
    ></ReactFlow>
  );
});

export const Flow = (props) => {
  return (
    <ReactFlowProvider>
      <SaveRestoreComponent {...props} />
    </ReactFlowProvider>
  );
};

Steps to Reproduce the Bug or Issue

Save the flow
update nodes/edges ( by adding and removing some nodes and edges)
restore on pane click
edges and pane position doesnt fit the view while resizing.

Expected behavior
I expected the restore to add back the element at the right position and fit the view while resizing my window.
Screenshots or Videos
No response
Platform

OS: [e.g. macOS, Windows, Linux]
Browser: [Chrome, Safari, Firefox]
Version: [10.0.6]

Additional context
No response

So After some debugging. The following call introduce positionAbsolute to nodes[]
const flow = reactflowInstance.toObject();
once the data restored from the local Storage. the positionAbsolute make the nodes fix not able to resize or fit the view.

Thanks @Jasminou we will check that!

This should be fixed in v10.3.9. Can you confirm @Jasminou ?

thank you I will check later and close the bug :) @moklick

@moklick yes it's fixed thank you


[0.4] Trait that allows creating a transaction

How difficult would it be to add a trait in 0.4 that would be present on any type that allows the creation of a transaction? Having something along the lines of this would be a huge improvement in generic bounds in function headers, imo.
Rough API?
pub trait Transactionable<DB>  { // obviously some other name
    pub async fn begin(&self) -> Result<Transaction<'_, DB>
}

Not that I disagree but can you help me see your intended use case?
Because of the lack of lazy normalization in Rust, it's not possible to write a fully generic-over-executor function ( see #419 ).
However if you have a function take &mut PgConnection (using postgres as an example), you can pass it &mut tx (due to Deref), &mut conn, or &mut pool.acquire().await?. You can then start a new transaction from &mut PgConnection ( this part is new on master ).

I can look to see if accepting a &mut PgConnection is feasible. I was trying to keep things generic and let the compiler figure out the exact types, but that's not a strict requirement. It just feels wrong to pass a raw connection, even though I know it should be fine. I'm working from a connection pool, and want to make sure that things are as idiomatic as can be.
#419 looks like a very good idea, and is somewhat along the lines of how I designed the API for time.
You're definitely pushing the bounds of Rust's type system as it currently is. Have you considered adding an "unstable" or "nightly" feature flag that optionally enables use of nightly features? I'm aware of a number of crates do this.

This now exists on master as the Acquire trait.
This also enables writing a fully database-generic function.
async fn make_things_happen<'c, A>(conn: A) -> anyhow::Result<()>
where
    A: Acquire<'c>,
    for<'e> &'e mut <A::Database as Database>::Connection: Executor<'e>,
{
    let mut conn = conn.acquire().await?;

    conn.execute("SELECT 1").await?;
    conn.execute("SELECT 1").await?;
    conn.execute("SELECT 1").await?;

    Ok(())
}

The type bounds are a bit gross but that function will accept &pool or &mut conn ( or &mut tx ).

Looks good. Thank you!


The product status should be Highlighted in product list page

Issue Description
The Status of the product on the products page must be highlighted with the Background boxes as per the workflow, like active or inactive.
Bagisto Version - Master
Steps To Reproduce
1. Click on products indie the catalog tab.
2. View the status of the products.
Actual Result: The status of the product is not Highlighted in the products table.
Expected Result: Please look at the screenshot for reference.
Screenshot

@jitendra-webkul
Now, this enhancement is done. so I am closing this enhancement.
And I have attached a screenshot Here, for future reference


hi，when i post pdf files，it come up a error

(document-processing) root@wbj:/etc/unstructured-api# sudo make run-web-app
PYTHONPATH=/etc/unstructured-api uvicorn prepline_general.api.app:app --reload --log-config logger_config.yaml
2023-07-07 10:43:57,554 uvicorn.error INFO Will watch for changes in these directories: ['/etc/unstructured-api']
2023-07-07 10:43:57,555 uvicorn.error INFO Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
2023-07-07 10:43:57,555 uvicorn.error INFO Started reloader process [2805] using WatchFiles
[nltk_data] Error loading punkt: <urlopen error [Errno 111] Connection
[nltk_data]     refused>
[nltk_data] Error loading averaged_perceptron_tagger: <urlopen error
[nltk_data]     [Errno 111] Connection refused>
2023-07-07 10:43:59,556 uvicorn.error INFO Started server process [2807]
2023-07-07 10:43:59,557 uvicorn.error INFO Waiting for application startup.
2023-07-07 10:43:59,557 uvicorn.error INFO Application startup complete.
2023-07-07 10:44:18,178 <IP_ADDRESS>:53472 POST /general/v0/general HTTP/1.1 - 500 Internal Server Error
2023-07-07 10:44:18,178 uvicorn.error ERROR Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/uvicorn/protocols/http/httptools_impl.py", line 435, in run_asgi
result = await app(  # type: ignore[func-returns-value]
File "/usr/local/lib/python3.8/dist-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/fastapi/applications.py", line 290, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/starlette/applications.py", line 122, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 184, in call
raise exc
File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 162, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/cors.py", line 83, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/exceptions.py", line 79, in call
raise exc
File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.8/dist-packages/fastapi/middleware/asyncexitstack.py", line 20, in call
raise e
File "/usr/local/lib/python3.8/dist-packages/fastapi/middleware/asyncexitstack.py", line 17, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 718, in call
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 66, in app
response = await func(request)
File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 241, in app
raw_response = await run_endpoint_function(
File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 169, in run_endpoint_function
return await run_in_threadpool(dependant.call, **values)
File "/usr/local/lib/python3.8/dist-packages/starlette/concurrency.py", line 41, in run_in_threadpool
return await anyio.to_thread.run_sync(func, *args)
File "/usr/local/lib/python3.8/dist-packages/anyio/to_thread.py", line 33, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread
return await future
File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 807, in run
result = context.run(func, *args)
File "/etc/unstructured-api/prepline_general/api/general.py", line 465, in pipeline_1
list(response_generator(is_multipart=False))[0]
File "/etc/unstructured-api/prepline_general/api/general.py", line 424, in response_generator
response = pipeline_api(
File "/etc/unstructured-api/prepline_general/api/general.py", line 239, in pipeline_api
elements = partition(
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/auto.py", line 180, in partition
elements = partition_pdf(
File "/usr/local/lib/python3.8/dist-packages/unstructured/documents/elements.py", line 119, in wrapper
elements = func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/unstructured/file_utils/filetype.py", line 519, in wrapper
elements = func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/pdf.py", line 82, in partition_pdf
return partition_pdf_or_image(
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/pdf.py", line 131, in partition_pdf_or_image
return _partition_pdf_with_pdfminer(
File "/usr/local/lib/python3.8/dist-packages/unstructured/utils.py", line 43, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/pdf.py", line 244, in _partition_pdf_with_pdfminer
elements = _process_pdfminer_pages(
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/pdf.py", line 301, in _process_pdfminer_pages
element = element_from_text(_text)
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/text.py", line 151, in element_from_text
elif is_possible_narrative_text(text):
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/text_type.py", line 76, in is_possible_narrative_text
if exceeds_cap_ratio(text, threshold=cap_threshold):
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/text_type.py", line 273, in exceeds_cap_ratio
if sentence_count(text, 3) > 1:
File "/usr/local/lib/python3.8/dist-packages/unstructured/partition/text_type.py", line 222, in sentence_count
sentences = sent_tokenize(text)
File "/usr/local/lib/python3.8/dist-packages/unstructured/nlp/tokenize.py", line 38, in sent_tokenize
return _sent_tokenize(text)
File "/usr/local/lib/python3.8/dist-packages/nltk/tokenize/init.py", line 106, in sent_tokenize
tokenizer = load(f"tokenizers/punkt/{language}.pickle")
File "/usr/local/lib/python3.8/dist-packages/nltk/data.py", line 750, in load
opened_resource = _open(resource_url)
File "/usr/local/lib/python3.8/dist-packages/nltk/data.py", line 876, in open
return find(path, path + [""]).open()
File "/usr/local/lib/python3.8/dist-packages/nltk/data.py", line 583, in find
raise LookupError(resource_not_found)
LookupError:

Resource punkt not found.
Please use the NLTK Downloader to obtain the resource:

import nltk
nltk.download('punkt')

For more information see: https://www.nltk.org/data.html
Attempted to load tokenizers/punkt/PY3/english.pickle
Searched in:
- '/root/nltk_data'
- '/usr/nltk_data'
- '/usr/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- ''

when i run  “ import nltk”  in paython3，  it come a new error

import nltk
Traceback (most recent call last):
File "", line 1, in
File "/root/.pyenv/versions/3.8.17/lib/python3.8/site-packages/nltk/init.py", line 153, in
from nltk.translate import *
File "/root/.pyenv/versions/3.8.17/lib/python3.8/site-packages/nltk/translate/init.py", line 24, in
from nltk.translate.meteor_score import meteor_score as meteor
File "/root/.pyenv/versions/3.8.17/lib/python3.8/site-packages/nltk/translate/meteor_score.py", line 13, in
from nltk.corpus import WordNetCorpusReader, wordnet
File "/root/.pyenv/versions/3.8.17/lib/python3.8/site-packages/nltk/corpus/init.py", line 64, in
from nltk.corpus.reader import *
File "/root/.pyenv/versions/3.8.17/lib/python3.8/site-packages/nltk/corpus/reader/init.py", line 106, in
from nltk.corpus.reader.panlex_lite import *
File "/root/.pyenv/versions/3.8.17/lib/python3.8/site-packages/nltk/corpus/reader/panlex_lite.py", line 15, in
import sqlite3
File "/root/.pyenv/versions/3.8.17/lib/python3.8/sqlite3/init.py", line 23, in
from sqlite3.dbapi2 import *
File "/root/.pyenv/versions/3.8.17/lib/python3.8/sqlite3/dbapi2.py", line 27, in
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

how can i fix this  problem

Hi @kill136 , _sqlite3 is a Python internal module, and failure to import it in my experience happens due to an OS dependency being missing when Python was installed.
How to fix that depends on your platform -- if you are using some flavor of linux you can probably install sqlite-devel or libsqlite3-dev using your package manager. You may have to reinstall Python.


RasaNLUHttpInterpreter - noproxy option

Rasa Core version: 10.2
Python version: 3.6.5
Operating system (windows, osx, ...): CentOs 7
Issue:
I am building my first Rasa project and running Rasa NLU separately and using the RasaNLUHttpInterpreter, but Rasa-Core was not making any calls.
It took me 2 hours to realize that I have proxy env variables and RasaNLUHttpInterpreter is using the requests package to make the call, so even when calling http://<IP_ADDRESS>:5010, it was trying to do that via the proxy and silently failing.
Quick solution was to set the NO_PROXY env variable:
    # no proxy setup, so the RasaNLUHttpInterpreter can connect
    import os
    os.environ['NO_PROXY'] = '<IP_ADDRESS>'

    from rasa_core.interpreter import RasaNLUHttpInterpreter
    from rasa_core.utils import EndpointConfig

    endpoint = EndpointConfig("http://<IP_ADDRESS>:5010")
    interpreter = RasaNLUHttpInterpreter(endpoint=endpoint)
    agent = Agent.load(app.config['RASA_MODEL_PATH'], interpreter=interpreter)

I thought I will add it here in case others get stuck on the same.
Also a potential enhancement is to have a proxy ignore flag in RasaNLUHttpInterpreter.
If you think this might be useful, then I am happy to make a PR for this.

Thanks for raising this issue, @amn41 will get back to you about it soon.

thanks @zoltan-fedor for raising this. I think it's a super generic thing so probably more something for the upstream requests package to warn about. But really appreciate you mentioning it here. What might make sense is a logger.debug statement printing the request details when someone is running in debug mode.

hi @amn41 , you are right, I run into this regularly as the requests package is being used across the board.
This issue is just not an easy one to spot for those who haven't yet seen this before, especially as this result in a fully "silent" failure.
Any logging, notification could help others who face the same issue, to bring into their attention the fact, that they have a proxy env variable set and the requests package will use that automatically to send requests to the RasaNLUHTTPInterpreter, which is likely not what they would want (as probably most people wouldn't run the RasaNLUHTTPInterpreter and the dialog engine separated by a proxy).


add RecordHitN

@poonai
This functionality was implemented here: https://github.com/go-chi/telemetry/pull/7


[ADDED] PrismJS based syntax highlighting and some code to test it

Used this code for new project in https://github.com/amardeshbd/android-syntax-highlighter/pull/8


Allow scopes to be dynamic if parameters are defined by the controller

At the moment the BREAD controllers are only capable of using fixed "scope" filters that take no parameters.
This adds support for dynamic scopes through a straightforward function override convention. e.g.
class Post extends Model {
    public function scopeForCategory($query, $category) {
        return $query->where('category', $category);
    }
}

Then in the BREAD setup, the 'forCategory' scope becomes selectable, but will fail on render due to too few parameters. Simple controller override solves this:
class MyPostController extends VoyagerBaseController {
    public function scopeForCategoryParams(Request $request) {
        // grab the category ID dynamically - example is from the request, but could be from anywhere
        return [$request->route()->parameter('category')];
    }
}

This pull request is in particular for when you need to grab the parameter dynamically, although it would be also be possible to have a "fixed" parameter passed to a dynamic scope by adding an Optional Details JSON with a scopeParams array to the dataType configuration itself.

Thanks for PR, interesting idea. :+1:
We are all quite busy so don't think we are ignoring PRs but it gets time to review when you did not write the code.
Adding tests when you can would help.


add extra IPMI calls.

this commit is not tested!
I'm just using it as a way to communicate :)
add extra IPMI calls.  more work is still needed to cleanup doc strings.
also pyghmi/ipmi/private/constants.py should be updated with the error codes returned from the added ipmi calls.
perhaps it would be best if a new file was created /raw.py/
it could focuse on just the raw IPMI  api calls. Where command.py could be used to house helper calls...
helper calls like:
get_sensor_descriptions, get_health, set_power
def user_create(uid, name, password, channel=1, callback=False,
                link_auth=True, ipmi_msg=True, privilege_level='administrator'):
    '''
    Helper function to create users

    privilege_level:
    User Privilege Limit. (Determines the maximum privilege level that the
    user is allowed to switch to on the specified channel.)

        * callback
        * user
        * operator
        * administrator
        * proprietary
        * no_access
    '''
    set_user_name(uid, name)
    set_user_access(uid, channel, callback=callback, link_auth=link_auth, ipmi_msg=ipmi_msg, privilege_level=privilege_leve)
    set_user_password(uid, password)
    set_user_password(uid, password, mode='enable')
    return True

Thank you for contributing to stackforge/pyghmi!
stackforge/pyghmi uses Gerrit for code review.
Please visit http://wiki.openstack.org/GerritWorkflow and follow the
instructions there to upload your change to Gerrit.

fyi I have many more changes so please don't use this commit as a ref!


unexpected itemEOL("\n") in amount

Hi, great work on the parser:
I'm geting the following error when trying to use it:
$ cat test.dat
; vim: ft=ledger:sts=2:expandtab:indentexpr=

2015/03/02 Arlanda
  Раз:Услуги:Транспорт:Такси  675
  Кап:ING

$ cat test.dat | ledger2json
2017/01/01 12:52:18 Parsing error: ledger: stdin:4: unexpected itemEOL("\n") in amount

Hmm, is it possible to have no commodity attached to the amount?
Perhaps my parser didn't support that.

It is supported by ledger-cli
$ ledger -f test.dat print
2015/03/02 Arlanda
    Раз:Услуги:Транспорт:Такси                   675
    Кап:ING

I feel it's one of those cases where the reference format is too lax which makes re-implementing all the edge cases a journey


@Eikyar Hamster

Originally posted by @Javadkaboli in 8a6277a

https://github.com/toncenter/tonweb/issues/372#issue-2760136363


Cross compilation builds

Add some cross compiling builds to test things aren't broken.
Primarily aimed at the assembly but there are other places things go architecture specific.

Two of the builds were failing, I've added fixes to get them going again.  A new review will be required.

Merged to master.


JP WOTD includes romaji

puts romaji in Japanese word-of-the-day
only tested with unit tests, not with any data from the wotd api
There might be other places to use this. (I don't know if JishoHelper or the translate command could use it.)

thank you!


[Android] web组件 无法监听 spa的url变化

感谢你的反馈，Weex目前是隶属于Apache Software Foundation的项目，因此在Gtihub渠道我们鼓励使用英文反馈问题。下面我将使用Google Trasnlate将你的问题翻译成英语，并以英语回答。

Question Description: Web component can't listen to spa url changes

Please follow the issue template and provide your runnable demo.

If this is a feature request, you should ask it in the mailing list
If this is a bug report, please provide a runnable demo.

Either case, I will just close the issue, feel free to reopen it with your demo or send an email to the mailing list.


[VL] Add plan validation util for debugging validate process

What changes were proposed in this pull request?
Add plan_validation_util executable for debugging validate process in native side, and refine docs.

@marin-ma @PHILO-HE please help to review this patch, thank you!

Thanks for this feature! Could you provide some output after this change?
I'm not sure that all validation plans can be successfully logged. Could you check if we need to apply this fix to the validation plan on java side?
https://github.com/oap-project/gluten/pull/3969/files#diff-a7356fa0629d859807e18644ff6556e6babc825fc25c95a967ce28abe6d100d9R577-R578

Thanks for adding this feature! Could you provide some output after this change? I'm not sure that all validation plans can be successfully logged. Could you check if we need to apply this fix to the validation plan on java side? https://github.com/oap-project/gluten/pull/3969/files#diff-a7356fa0629d859807e18644ff6556e6babc825fc25c95a967ce28abe6d100d9R577-R578

json plan can be printed if has no agg. your patch is great, I will revert doc modification.

         > select count(*) from test;
I1212 10:35:08.637563 3619404 VeloxJniWrapper.cc:98] ################################################## received substrait::Plan: for validation
I1212 10:35:08.637595 3619404 VeloxJniWrapper.cc:99] {"relations":[{"root":{"input":{"read":{"common":{"direct":{}},"baseSchema":{"struct":{}}}}}}]}
[libprotobuf WARNING google/protobuf/util/internal/json_objectwriter.cc:52] JsonObjectWriter was not fully closed.
W1212 10:35:08.784191 3619404 VeloxJniWrapper.cc:101] Error converting Substrait plan for validation to JSON: BinaryToJsonStream returned INTERNAL:Invalid type URL, type URLs must be of the form '/<typename>', got: type.googleapis.com/google.protobuf.StringValue

         > select * from test;
I1212 10:35:41.984709 3619404 VeloxJniWrapper.cc:98] ################################################## received substrait::Plan: for validation
I1212 10:35:41.984735 3619404 VeloxJniWrapper.cc:99] {"relations":[{"root":{"input":{"read":{"common":{"direct":{}},"baseSchema":{"names":["id","b"],"struct":{"types":[{"i32":{"nullability":"NULLABILITY_NULLABLE"}},{"bool":{"nullability":"NULLABILITY_NULLABLE"}}]},"columnTypes":["NORMAL_COL","NORMAL_COL"]}}}}}]}

@marin-ma could we merge or any more comments?

Hi @Yohahaha, could you document how to use it? Maybe, in HowTo.md. Thanks!

Hi @Yohahaha, could you document how to use it? Maybe, in HowTo.md. Thanks!

Added.

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_3972_time.csv
log/native_master_12_12_2023_8c6f1643e_time.csv
difference
percentage

q1
33.04
33.75
0.702
102.13%

q2
24.85
24.88
0.030
100.12%

q3
37.45
37.71
0.256
100.68%

q4
40.24
37.86
-2.383
94.08%

q5
72.22
72.83
0.609
100.84%

q6
7.06
7.05
-0.006
99.91%

q7
85.77
86.50
0.726
100.85%

q8
86.62
86.24
-0.379
99.56%

q9
128.02
125.50
-2.513
98.04%

q10
43.70
44.68
0.978
102.24%

q11
20.65
20.21
-0.433
97.90%

q12
25.10
25.06
-0.043
99.83%

q13
46.43
46.58
0.150
100.32%

q14
15.61
19.99
4.373
128.01%

q15
27.90
27.55
-0.356
98.73%

q16
15.76
15.86
0.098
100.62%

q17
104.90
103.27
-1.628
98.45%

q18
150.40
151.33
0.936
100.62%

q19
12.81
13.89
1.080
108.43%

q20
28.71
28.68
-0.026
99.91%

q21
228.53
229.12
0.593
100.26%

q22
13.84
13.95
0.111
100.80%

total
1249.62
1252.49
2.878
100.23%


Add a way to specify the OTP app to collect version from

It would be great if there was a way to specify which app to send version info for. Right now, since ExSentry.Utils.version defaults to :exsentry, the Plug will just send ExSentry's version number to Sentry.

+1

Sorry for letting this one sit for so long!  This is fixed in 0.7.1.


Consolidate crypto libraries

Currently LNbits and extensions are using the following Python crypto libraries:

ecdsa
embit
pycryptodomex
secp256k1

It would be great to determine whether we really need to use all 4 and consolidate usages to use maybe one or two of these.

love it, embst is definitly needed for all the boltz magic

love it, embit is definitly needed for all the boltz magic, i think it a good library for btc stuff.
i also think it is the main thing behind the onchain extension if i am not wrong? @motorina0

Yes, embit is used for onchain stuff (transaction builder). I guess this can stay as is.

pycryptodomex is used for:
from Cryptodome import Random
from Cryptodome.Cipher import AES

random is spurious, i think we should replace all calls to os.random() and Cryptodome.Random with secrets.token_bytes()
that said, this won't help us getting rid of pycryptodomex, because we will still need for AES used by core and some of the extensions

This leaves us with ecdsa and secp256k1 where there is a huge overlap and there it would be great if we were able to figure out which of these we want to use. This is basically issue of https://github.com/lnbits/bolt11 which uses both and this usage translates to lnbits using both.

Thinking more about this, I am going to close this in favor of smaller individual issues, which will point back to this issue.


fix release_image.sh & run build_image.sh on CI

This PR makes the following changes:

it fixes one isssue in release_image.sh
This is related related to the new Dockerfile which expects the binaries to be in bin, not in ./.
it adds the build-docker-image target to the Makefile to test netcontain/build_image.sh

Closes #790

This is good to go.
@dseevr @jojimt

LGTM. Thanks for taking care of this.


[testconn] Fixing response

CATEGORY
Choose one

[x] Bug Fix
[ ] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[ ] Build / Development Environment
[ ] Documentation

SUMMARY
Fixes https://github.com/apache/incubator-superset/issues/7669.
TEST PLAN
CI.
ADDITIONAL INFORMATION

[x] Has associated issue: https://github.com/apache/incubator-superset/issues/7669
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS
to: @cgivre @mistercrunch

Codecov Report

Merging #7753 into master will decrease coverage by 8.16%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #7753      +/-   ##
==========================================
- Coverage   73.96%   65.79%   -8.17%
==========================================
  Files         106      459     +353
  Lines       11452    21963   +10511
  Branches        0     2415    +2415
==========================================
+ Hits         8470    14450    +5980
- Misses       2982     7392    +4410
- Partials        0      121     +121

Impacted Files
Coverage Δ

superset/views/core.py
73.07% <100%> (+0.01%)
:arrow_up:

superset/assets/src/components/Checkbox.jsx
100% <0%> (ø)

...ations/deckgl/layers/Polygon/PolygonChartPlugin.js
0% <0%> (ø)

...ets/src/dashboard/components/dnd/DragDroppable.jsx
94.59% <0%> (ø)

...c/visualizations/deckgl/layers/Polygon/Polygon.jsx
0% <0%> (ø)

superset/assets/src/components/EditableTitle.jsx
81.53% <0%> (ø)

superset/assets/src/setup/setupPlugins.js
0% <0%> (ø)

...t/assets/src/components/InfoTooltipWithTrigger.jsx
41.66% <0%> (ø)

.../src/dashboard/components/UndoRedoKeylisteners.jsx
9.52% <0%> (ø)

...ts/src/explore/components/ExploreActionButtons.jsx
100% <0%> (ø)

... and 345 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 f09c916...ba049f3. Read the comment docs.


Replace the Weibo API

When the followers_count > 10,000, the previous Weibo API does not return the exact number
{     "ok": 1,     "data": {         "userInfo": {             "followers_count": "87\u4e07",             "followers_count_str": "87\u4e07"         }     } }
Replace the Weibo API with https://weibo.com/ajax/profile/info?uid=${userId}

closing this in favor of new release


Unable to load Organization

Hello All,
I am unable to use the Azure DevOps generator for the Microsoft CAF as my organization cannot load. Kindly advise.
See error below:
"Could not load your organizations. Please check if the logged in Id contains the Azure DevOps Organizations or change the directory in profile page and try again."

Hi, @sokpara
Thank you for reaching us. Please refer to #353


Latest 12.0.2 crashes on serve or build

🐞 Bug report

[ ] new
[ x ] build
[ x ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
No
Description
When attempting ng b or ng s, compilation crashes
🔬 Minimal Reproduction
🔥 Exception or Error

C:\Users\bobla\Documents\projects\videoads\node_modules\webpack\lib\javascript\JavascriptModulesPlugin.js:125
                        throw new TypeError(
                              ^

TypeError: The 'compilation' argument must be an instance of Compilation
    at getCompilationHooks (C:\Users\bobla\Documents\projects\videoads\node_modules\webpack\lib\javascript\JavascriptModulesPlugin.js:125:10)    at C:\Users\bobla\Documents\projects\videoads\node_modules\webpack\lib\javascript\CommonJsChunkFormatPlugin.js:43:19
    at Hook.eval [as call] (eval at create (C:\Users\bobla\Documents\projects\videoads\node_modules\tapable\lib\HookCodeFactory.js:19:10), :7:1)
    at Hook.CALL_DELEGATE [as _call] (C:\Users\bobla\Documents\projects\videoads\node_modules\tapable\lib\Hook.js:14:14)
    at Compiler.newCompilation (C:\Users\bobla\Documents\projects\videoads\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1030:30)
    at C:\Users\bobla\Documents\projects\videoads\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1073:29
    at Hook.eval [as callAsync] (eval at create (C:\Users\bobla\Documents\projects\videoads\node_modules\tapable\lib\HookCodeFactory.js:33:10), :15:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\bobla\Documents\projects\videoads\node_modules\tapable\lib\Hook.js:18:14)
    at Compiler.compile (C:\Users\bobla\Documents\projects\videoads\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1068:28)
    at Compiler.runAsChild (C:\Users\bobla\Documents\projects\videoads\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:520:8)
    at C:\Users\bobla\Documents\projects\videoads\node_modules\@ngtools\webpack\src\resource_loader.js:150:27
    at new Promise ()
    at WebpackResourceLoader._compile (C:\Users\bobla\Documents\projects\videoads\node_modules\@ngtools\webpack\src\resource_loader.js:149:16)
    at WebpackResourceLoader.get (C:\Users\bobla\Documents\projects\videoads\node_modules\@ngtools\webpack\src\resource_loader.js:239:44)
    at Object.resourceHost.readResource (C:\Users\bobla\Documents\projects\videoads\node_modules\@ngtools\webpack\src\ivy\host.js:30:35)
    at AdapterResourceLoader.preload (C:\Users\bobla\Documents\projects\videoads\node_modules\@angular\compiler-cli\src\ngtsc\resource\src\loader.js:88:39)

🌍 Your Environment

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/

Angular CLI: 12.0.2
Node: 16.2.0
Package Manager: npm 7.14.0
OS: win32 x64

Angular: 12.0.2
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... pwa, router, service-worker

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1200.2
@angular-devkit/build-angular   12.0.2
@angular-devkit/build-webpack   0.1200.2
@angular-devkit/core            12.0.2
@angular-devkit/schematics      12.0.2
@schematics/angular             12.0.2
ng-packagr                      12.0.2
rxjs                            6.6.7
typescript                      4.2.4

This typically means you have multiple webpack versions in your project.
Can you please provide the output of the below command?
npm ls webpack

<EMAIL_ADDRESS>C:\Users\bobla\Documents\projects\videoads
├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ │ └──<EMAIL_ADDRESS>deduped
│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ └──<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>thanks for the prompt reply

This looks like it may be a problem with NPM 7, can you try to downgrade to NPM 6 or use an alternative package manager such as yarn?

It's exactly that, I've fixed up all the  webpack dependencies and its ok now.
thanks

The issue is not just with NPM 7 but it is the fact that @angular-devkit/build-angular has a dependency of "webpack": "5.36.2", which means that the top level project must use that webpack version, not a later version with much needed bug fixes. Webpack 5.36.2 has serious performance issues and due to the dependency, newer versions cannot be used


refactor(root): update url for accessibility statement

Updated the url of the Accessibility Statement from /icds/ to /icds/accessibility-statement

Summary of the changes
Tell us, in a few words, what the changes are.
Related issue
Tell us the issue number. If suggesting an improvement or component, please discuss it with us in an issue first.
Checklist

[ ] I have manually accessibility tested any changes, if relevant.
[ ] I have raised this pull request against the develop branch

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Failed to open '\\?\pipe\discord-ipc-0': [Errno 2] No such file or directory: '\\?\pipe\discord-ipc-0'

I'm aware this is only an error you'd see if you aren't on Linux, and as said on another issue, I tried other versions but it still returned the same error. I'm on windows btw

Most likely, the error occurs because Discord is not yet running or even installed.
If you look at the code at presence.py#138, Discord-RPC opens the Discord pipe socket. Therefore, if Discord is not already running, Discord-RPC will not run correctly.

Closed, since there is no further confirmation.


Feature Request: Task Bar jumplist should show items from profile

The Task Bar context menu

should show the items from the configured profiles that populate the new shell menu

This is a really good idea

@fcharlie How can I add icons to the shell list just like that in your picture?

@Jarvis73 Modify profile.json,
Look: A new Console for Windows - It's the open source Windows Terminal
https://gist.github.com/shanselman/221ef38d035fcf2836d664009f144eac

@fcharlie Perfect!

This context menu is called the Jumplist, for anyone planning to add this functionality in a PR

The jump list should also feature an option to launch Terminal as an administrator.
There has been discussion in other issues (#146, #632) as to why individual tabs can't be administrative, but a lumplist option to launch the whole program as administrator, like PowerShell or cmd, would be great.

If you guys wouldn't mind, I'd love to take a stab at this!

@berwyn, presuming that the scope of what you're attempting to take on is:

Determine how to register a jump list inside the TerminalApp project
Only listing the items in the jump list that would already otherwise be accessible from the + dropdown menu

Then I am OK with you proceeding on this and I will assign you. If things start to get outside the proposal or off the rails, please consult with us here before going further.
Disclaimer: You're going to be among the first people we assign to do a feature that aren't on our direct team. It might be rough and neither we nor you know exactly what to expect. Bear with us. We're learning how to be open as much as you're learning how to work in our code. A few notes to take with you as you go:

Try to match the style of where you're working. Try Modern C++ practices. Try to use WIL/GSL referencing other example usages. Try to add TAEF tests when/if you can (we know the Terminal project is rough here right now).
Be ready for a back-and-forth on PR or for us to generate a bunch of "new rules" or "regulations" as an outcome of this experience.
We're as excited as you are to have this be open, but please only expect our promptish responses M-F 8am-5pm Pacific Daylight Time. Be patient otherwise, we're coming back to you. We just like our families and friends and sleep and we're honestly overwhelmed with the amount of traffic we have received in the last 3 days and are struggling to keep up.

Fair?

 And, indeed, I was planning to only introduce the profile items in the flyout to the jumplist.

@HBelusca I called it that (in my own profile) because cmd.exe isn't DOS, but it is.

@berwyn to add:
I'd probably do the jumplist in the WindowsTerminal project - we're trying to keep the UWP-like code in TerminalApp and the Win32-like code in WindowsTerminal. See src/WindowsTerminal/AppHost.cpp for a place to start. You should be able to add methods to App to be able to query something like the profiles. Here be dragons though, the Profiles are not a C++/WinRT type, so they probably won't be exposable directly through the .idl. I can provide guidance here if you need help

@zadjii-msft I may open a draft PR today for this, but I actually met with great success creating the jumplist and its entries, introducing a method IAsyncAction App::_CreateJumplist() that's invoked immediately following App::_CreateNewTabFlyout(). Where I'm struggling is on responding to the actual click events on the jumplist items.
On a straight UWP, it seems like the Windows::UI::Xaml::StartScreen helpers create links that are intended to be handled by the App::OnLaunched(LaunchedEventArgs const&). I dropped in an appropriate function on App before it occurred to me that the desktop bridge may or may not actually connect those events. As of right now, the breakpoints I've set there were never hit and I'm not sure if that's just my inexperience debugging C++ and/or WinRT, or if there's some linkage issue due to the desktop bridge.
I've also never touched UWP with C++, so it's a learning process in that regard, do I need to declare lifecycle functions in the idl? Because that could also be the problem here (and that only just ocurred to me as I'm tying this).

Oh yikes, that might be a harder problem that we thought then.
As you've discovered, we're not really a real UWP, we're a Win32 application. Our App.cpp/h/idl/xaml is not a real UWP "App" in this sense (it's actually just a trick to get XAML  to work right for XAML Islands applications. I'm fairly certain (@DHowett-MSFT call me out if I'm wrong) even if you put Onlaunched in the idl, it wouldn't be called, because the application is getting activated as a traditional Win32 application.
So, how could we still make this work?
I don't really know how jumplists work, but if they let you specify commandline args, then maybe you could pass a --profile <guid> to wt.exe, and then parse the commandline in WindowsTerminal/main.cpp. Then, when creating the App, you'd pass the initial profile to the constructor. That's one option. Commandline args are something we want to add eventually, so you'd be the one to put some of the basics in place.
@miniksa any other ideas? I feel like there's gotta be an easier solution out there somewhere.

I had that thought was well, and it's the direction I started sniffing in last night but didn't get much of a chance to dig into it. Barring any other ideas that crop up, is there a good reference I could look at for handling commandline args in a Microsoft-approved manner? Maybe something in ConHost that could (I assume ConsoleArguments) that could be brushed up and pulled into the shared bits?

ConsoleArguments is where I'd start.
IIRC there was talk of adding getopt to the windows sdk (or CRT I don't remember) at some point, but idk if that ever actually happened or not.

For the arguments part, I agree. Go ahead and abstract/derive/baseclass/reuse ConsoleArguments into a shared component.
Probably into the Types one given its our grab bag of useful utilities shared across half-past everything.
Also, I'm doing some research into how jump lists work now to try to give you better advice. By what mechanism did you register the jump list? Is there some UWP/WinRT API to do it?

I leveraged the WinRT helpers to create the items, since that's on the list of APIs exposed to desktop bridge apps. I haven't had a chance to play with passing a full executable with args in for the arguments parameter, but it does seem to accept any arbitrary parameter.
I'll pop open a draft PR once I get home and have my hands on the code, should make it easier to discuss/iterate on the code.

OK, reading that documentation, I think that figuring out how to catch the arguments coming in on the initial wmain and probably figuring out how to single-instance or communicate with the existing running process are going to be the challenges here.
I was hoping Jump List registration also included an eventing callback that would be fired in the same process it was registered from, but that seems to be not true. It just seems to be a registration that tells the shell to CreateProcess/ShellExecute something and maybe with arguments.

Alright, I've opened a draft (#689) to track progress on this. So far, it's just my first attempt at getting the items into the jumplist. I'll probably take some time this weekend to have a stab at parsing the commandline and launching tabs

As a follow-up to the IDL investigation, it turns out that declaring App::OnLaunched(LaunchActivatedEventArgs const&) in the IDL will actually cause that to be called at the appropriate point in the lifecycle of the app!
That said, it's still not helpful, with Explorer generating the same error message:

I also took a stab at passing both ms-appx:///WindowsTerminal.exe --profile <guid> and the result of Package::Current().InstalledLocation().GetFileAsync(L"WindowsTerminal.exe")  with the same arguments, no dice there either.
I'll dig in and see how jumplists worked prior to UWP, this may be a case where the older Win32 API is more appropriate than the UWP-friendly one. Might also toy with OnActivated(IActivatedEventArgs const&) and see if there's any success there.

I'm very excited to see that putting that method in the .idl makes it actually get called. Perhaps we're closer to being a real UWP than I thought :P
I'd maybe try just wt.exe --profile <guid>. We're registering wt.exe as an AppExecutionAlias, so ShellExecute/CreateProcess should be able to find us just from wt.exe.

I did make an attempt to use just wt.exe ... and that didn't seem to help either. I get the feeling that JumpListItem::CreateWithArguments( ... ) is doing some extra work under the hood trying to match things up to the exe, but I'm having a hard time proving that out since the behaviour of CreateWithArguments isn't well documented past a singular C# example and there don't appear to be any real tools to inspect a jumplist item and figure out what it actually does.
I have to wonder if, on some level, it's a matter of window events not making it into the XAML Island. I read the docs on XAML Hosting and it does mention a IDesktopWindowXamlSourceNative2 with a PreTranslateMessage that forwards window events into the XAML Island and I wonder if that would help connect the XAML events, but looking at the toolkit I only found it in the Forms module and WPF module, but not in the Win32 module. Though I guess maybe it's unrelated since all the examples are about keyboard navigation?

Does it work with windowsterminal.exe since that's the real win32 app name and not the alias? Maybe it's just the alias code getting in the way?
We are trying to combine like 15 levels of shell and app execution extensions. The fewer we can bounce through will probably increase the chances of success.

Probably not. That name isn't exposed to anybody -- anything that launches the package must either go through HAM or the app execution aliases (which are just magic reparse points that say "hey use the HAM stuff to launch this package")

So, I had a thought today and dug through the packaging app. I wonder if this is a problem with using development mode where the app alias is registered as wtd.exe (see here). I'm going to play with that angle and see if that gets any more successful.

Played around with it some more and I'm not sure that changing anything inside the string arguments here is helping. Went on a hunch and examined the AppX manifest and did notice in the schema that only uap5:Extension supports windows.appExecutionAlias and tried updating the manifest to reflect that. Still no dice. I'm actually somewhat stumped on this one!

@berwyn, if you can't figure it out, that's fine. You're welcome to take a stab at a different issue and just park this investigation for now. None of us know what to do here either, so it's your choice. Keep digging or find something else.

Yeah, I think that I'm going to shelf this for now. I took a stab at the old Win32 API over the weekend and didn't face much success there either, and all my googling turned up was a recommendation to use the UWP APIs instead for desktop apps because of some registry hoop nonsense the legacy API required.
I'll leave the draft PR open in case anyone else wants to take a stab using my code as a base (or in case I have a moment of brilliant inspiration in the near future).

I was curious and also did some investigation, following the same thread. The only new piece of information I could dig up was this message in the event viewer which occurs when the jump list item is clicked:
Activation for WindowsTerminalDev_8wekyb3d8bbwe!App failed. Error code: This app does not support the contract specified or is not installed.. Activation phase: No phase defined
There are very few references to that message and I couldn't find out anything else. Perhaps someone else can make sense of it.

I got jumplists working using the COM api directly (ICustomDestinationList) instead of the winrt api. It calls wt/wtd.exe to open to application. This is just a minimal example to get it working and there are other details to consider like handling new and deleted profiles.
If this is the way we want to proceed with this feature, I can add full details. Perhaps a Spec?

@dsafa That's incredible! I'd definitely greenlight writing a spec to nail some of the details. Great work!

Awesome stuff! Definitely feeling the lack of COM skills on my side now :V
I suppose, then, it's safe to close my draft in favour of @dsafa opening a PR?

Tell me there's an error  in @wil/...

Tell me thermes an Error in file wil/......

I feel like this is an important feature and would like to see it brought to the product soon!

Just dropping by to say that this would be an excellent, excellent addition to the terminal program.

Yes, please.  With syntactic sugar on top.

I haven't seen it mentioned specifically in this thread; please keep in mind this feature, of pinning script-files to jump list:
https://github.com/microsoft/terminal/issues/5261

I consider this a very necessary feature. Many times I don't want to launch the default when I launch terminal so it just wastes time to have to launch it to open a tab I don't need and then launch another tab.
ConEmu has jumplist functionality and I use it constantly.

Is any progress being made on this?  If no maybe help is needed?
Sent from my iPhone
On Aug 20, 2020, at 12:10, Adam Meltzer<EMAIL_ADDRESS>wrote:

I consider this a very necessary feature. Many times I don't want to launch the default when I launch terminal so it just wastes time to have to launch it to open a tab I don't need and then launch another tab.
ConEmu has jumplist functionality and I use it constantly.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fterminal%2Fissues%2F576%23issuecomment-677845788&data=02|01||42ca644d87a14e20ff4908d8453cb329|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637335474285558787&sdata=ASk6fVpLQ%2FbaTkzoNgJjcMuYvOj9Fy6RSDi3OdUt9sw%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAITOORKQB6RABWIFLHEWTLSBVYKFANCNFSM4HLQSWKA&data=02|01||42ca644d87a14e20ff4908d8453cb329|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637335474285568783&sdata=H1Gg%2F5YLf6WgsJDz9K2gVCgh%2BGtujy1AQD8y4%2BJaOrk%3D&reserved=0.

Not yet. I believe it's next up on @leonMSFT's todo list - hence why it's in the 1.4 milestone.

If you need help happy to take a stab.


The link to the conduit prometheus service isn't fully qualified

I just noticed that the installation script writes "-prometheus-url=http://prometheus:9090" to the conduit installation YAML script. "http://prometheus" is unnecessarily ambiguous and depends on the DNS configuration of the node and cluster. We should use the fully-qualified name "http://prometheus.$conduit-namespace.svc.$zone" like we use for the proxy-api link in the proxy.

Just to clarify, the fully qualified name would like something like this
http://prometheus.conduit.svc.cluster.local. And as a follow up, does K8S consider the zone to cluster.local or just .local?

Just to clarify, the fully qualified name would like something like this
http://prometheus.conduit.svc.cluster.local.

Yes.

And as a follow up, does K8S consider the zone to cluster.local or just .local?

cluster.local; see https://github.com/kubernetes/dns/blob/master/docs/specification.md#21---definitions.


Http does not catch connection refused error

Hi,
I want to catch all http errors to inform the user of an occurred problem.
So, I created a method that does a http get with a catch.
get(path: string): Promise<any> {
    let headers = new Headers();
    return this.http.get(path, { headers: headers })
        .toPromise()
        .then(response => { ... })
        .catch((response: Response) => { this.errorHandler(response); });
  }

When the path is '/fault-url' the catch is handled as expected.
But when the path is 'http://localhost:5000/fault-url' the error is not catched by the catch method.
I've added logging to all different places, but it seams the get method just aborts.
The console log shows following errors

OPTIONS http://localhost:5000/fault-url net::ERR_CONNECTION_REFUSED
EXCEPTION: Response with status: 0  for URL: null
Uncaught Response {_body: ProgressEvent, status: 0, ok: false, statusText: "", headers: Headers…}

You probably want to log this in https://github.com/angular/angular/issues instead - this repo is for the angular.io website.

I will do that, Thanks.


How to generate the proposal list on my own videos?

I want use my own videos, but I don't know how to generate the normalized proposal list. Can you give me some help? Thank you!

hello,do you finally run the model on your videos?I also don't know how to generate the normalized proposal list

Please see the MMAction package for the full set of tools.


Ownership Outside Org Listing Issue

New to GAM, but...
When using the command gam user<EMAIL_ADDRESS>show filelist todrive, it appears the file listing does not include documents owned by users outside the organization.
When doing bulk operation deletes, I came across this issue, because I was getting 403 errors on particular files. Looking at those files directly, I was able to see they were not owned by users inside the org.
I'm expecting to see ALL files and owners listed , but it appears to be showing only showing files owned by myself.
Not sure if this is a bug in GAM, or a limitation in the API.

rpesta,
Add the anyowner argument: gam user<EMAIL_ADDRESS><EMAIL_ADDRESS>show
filelist anyowner todrive
Ross
On Thu, May 25, 2017 at 3:20 PM, rpesta<EMAIL_ADDRESS>wrote:

New to GAM, but...
When using the command gam user<EMAIL_ADDRESS><EMAIL_ADDRESS>show
filelist todrive, it appears the file listing does not include documents
owned by users outside the organization.
When doing bulk operation deletes, I came across this issue, because I was
getting 403 errors on particular files. Looking at those files directly, I
was able to see they were not owned by users inside the org.
I'm expecting to see ALL files and owners listed , but it appears to be
showing only showing files owned by myself.
Not sure if this is a bug in GAM, or a limitation in the API.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jay0lee/GAM/issues/503, or mute the thread
https://github.com/notifications/unsubscribe-auth/AIU8L3tLrVoVKigtypnhd03_Io1hArdJks5r9f6cgaJpZM4Nm9bo
.

--
Ross Scroggs
<EMAIL_ADDRESS>


[RFC] externally implementable functions

An alternative to this is https://github.com/rust-lang/rfcs/pull/3635
Rendered
Tracking:

https://github.com/rust-lang/rust/issues/125418

How do you deal with the following case:
crate A defines an extern function f.
crate B imports A and implements f.
crate C imports A and implements f.
crate D imports B and C but cannot because both of them implement f and they conflict.

I agree conflicting implementations are a compiler error, but if libraries do it then you make some libraries mutually exclusive.

Yes, those would be mutually exclusive. Exactly how today panic-halt, panic-semihosting, and panic-reset are all mutually exclusive.

Can libraries define a new default implementation of an extern function? Something like
// crate A:

extern impl fn log::logger() -> Logger {
    Logger::to_stdout().with_colors()
}

// crate B imports A:
extern impl fn log::logger() -> Logger {
    Logger::to_stderr().with_colors()
}

// crate C imports B:
impl fn log::logger() -> Logger {
    Logger::to_file("log.txt")
}

Can libraries define a new default implementation of an extern function?

No, I don't think we should do that. It'd be hard to define the priority of the multiple defaults.

How do you deal with the following case?
crate A defines an extern function f.
crate B imports A and implements f. crate C imports A and implements f.
crate D imports B and C but cannot because both of them implement f and they conflict.
I agree conflicting implementations are a compiler error, but if libraries do it then you make some libraries mutually exclusive.
Edit: as I noted below, you might make it so B and C can both be imported as long as D also implements f

On the one hand, I would hope that crates that implement externally implementable functions would be minimal, i.e. only have this implementation and nothing else, so that including both in the crate graph would always be a clear and understandable error (and not a mistake because you'd want functionality from both).
On the other hand, the example of logging shows that there are clear cases where you might want to combine different loggers into some super-logger that is specific for your use case. Logging implementation crates could then either ship a companion crate that only implements the function, or could have a non-default feature to enable the implementation.

Simply feature gating these implementations solves a lot of the problems I think.

If none are found, the result is either an error, or, if the extern impl fn has a default body, an implementation is generated that calls that default body.

I think the RFC needs to clarify how this works with different crate types. Presumably this check is not required when building a library crate (or else the feature would be useless). What about when building a dylib or cdylib?
Also, I think it would be good if the root (binary) crate could resolve the issue with multiple implementations by providing its own implementation.

I think it would be good if the root (binary) crate could resolve the issue with multiple implementations by providing its own implementation.

That's a possible extension. But that's not what we currently have for the panic handler or global allocator, right?

It's unlikely the root binary crate should provide these or micro-manage them too much.
It's most likely library crate features control these, which enables many options.  If you do want micro-managment by the root binary crate then these could themselves by micro-crates too.
I'd think pub const and pub static would be the most likely future extensions here, but pub fn groups, or pub mod, could probably wait for more existential types discussions ala https://github.com/rust-lang/rfcs/pull/2492

I think this is a great idea, and I think we should try it as an experiment.
@rfcbot merge
@rfcbot concern github-suggestions

@burdges

I'd think pub const and pub static would be the most likely future extensions here.

no no no please don't extend this RFC to const. For static and fn one could implement the feature via the linker. But for const it can be used in compile-time constructs like [T; N] and Array<T, N> meaning the compiler has to consider multiple crates at the same time to fill in the extern const value. It makes the compilation model extremely complex without much conceivable benefits compared to extern static.

I think this may just be a future possibility, but I would assume that some uses would need the implementation to uphold a special contract - so it might make sense to have unsafe-to-impl externally implemented functions?
(Being a future possibility, this could also be added later, meaning that for now the implementation will always have no restrictions)

Adding restrictions is generally seen as a breaking change, so we wouldn't want to stabilize specific extern impl fns without those restrictions, so having the ability to make restrictions would effectively need to be part of the base RFC concept.

The existing panic_handler has no such restrictions. Same for the unstable alloc_error_handler.
For global_alloc it's a bit more tricky as it's a bunch of functions and they're unsafe to call and on a trait that's unsafe to implement...

In the alternatives section, you might want to mention the existing ability to use #[no_mangle] in the defining crate, and extern {} blocks in the calling crate.
The downsides of that approach I can think of are:

Global namespace of function names
Forced to be unsafe
Doesn't work with dylibs (without platform-specific hacks)

But note that global_allocator currently doesn't work with dylibs either.

Cargo doesn't know about it

But would this feature get any special Cargo integration?  It would be nice to be able to say "this crate is a dependency but only at link time", improving build parallelism.

@rfcbot resolved github-suggestions

@rfcbot concern statically-unused-extern-impl-fn

I posted an alternative that does this for static instead of fn: https://github.com/rust-lang/rfcs/pull/3635
They're pretty much equivalent in power. Doing it for fn is a bit more ergonomic in quite a few cases, but doing it for static is maybe a bit more consistent. I don't have much of a preference, but we should consider both.

Process question for @rust-lang/lang: should this be an experimental feature gate instead of an RFC?

@m-ou-se Definitely not "instead of", but possibly "in addition to". This feature absolutely needs an RFC in order to be a future stable feature, but it could also be an experimental feature gate in order to implement it without waiting for the RFC to be merged.
That said, I really hope we accept and merge this soon, and I'm hoping we get to it in the next lang meeting. I would like to prioritize it.

That screams "use traits for this"

Yeah, I agree that would be a good fit, but then we basically end up with https://github.com/rust-lang/rfcs/pull/2492, which was not accepted at the time because it involved too much complexity.
I'd be happy if we could pick that route and make that all work. This RFC is just an attempt to do something much more basic to start with, since a much more complicated change like https://github.com/rust-lang/rfcs/pull/2492 seems unlikely to work out any time soon.

As written, linkers can do this resolution, no?  Isn't that enough reason this should still exist even if some trait based scheme emerges in 5 years or whatever?

Just like global registration I don't think you want to implement this feature through the linker, at the very least initially. Personally, I'd be worried about the errors that are generated and which are hard to bring to the same standard as other rust compiler errors. I also like this comment about it.

I'd be worried about the errors that are generated and which are hard to bring to the same standard as other rust compiler errors.

My suggestion is to have the check for a downstream crate implementing it be in rustc, but the doing the actual tying up with the linker, like is currently done for #[panic_handler] and #[global_allocator] (for the latter the default is handled using a compiler generated shim, but when you actually use #[global_allocator] no shim is used at all.). In the end some form of tying up by the linker is necessary anyway unless you want to have a global constructor which at runtime sets a static to point to the external implementation of the function.

@rfcbot resolve statically-unused-extern-impl-fn
Resolved by the use of cfg.

@m-ou-se

That screams "use traits for this"

Yeah, I agree that would be a good fit, but then we basically end up with #2492, which was not accepted at the time because it involved too much complexity.
I'd be happy if we could pick that route and make that all work. This RFC is just an attempt to do something much more basic to start with, since a much more complicated change like #2492 seems unlikely to work out any time soon.

I don't see why impls used for this feature cannot be restricted to prohibit, for example, associated types or generics, if they complicate the minimal design.

I'd be happy to see an implementation using traits that is initially restricted in what can appear in the trait, if that makes it simple enough to ship.
I do hope eventually we can ship a version that allows, for instance, associated constants, and that we can use those associated constants in generic bounds on functions in the standard library. (For instance, conditionally providing impl From<u64> for usize.) However, I know that'd be more complex, and I think we should ship something without that support first if we can do that more easily.

I don't see why traits/impls used for this feature cannot be restricted to prohibit, for example, associated types or generics, if they complicate the minimal design.

So you're proposing basically https://github.com/rust-lang/rfcs/pull/2492 with some restrictions to make the implementation much simpler?
If you have time to write down a more concrete proposal (not necessariliy an RFC, but some clear examples or something), that would be valuable.

I don't have a concrete proposal, just a general suggestion to resyntax this
// log crate:

extern impl fn logger() -> Logger {
    Logger::default()
}

// user:

impl fn log::logger() -> Logger {
    Logger::to_stdout().with_colors()
}

into something like

// log crate:

#[some_extern_impl_attribute]
trait LoggerInterface {
  fn create_logger() -> Logger {
    Logger::default() // either default body for the default
  }
}

// or a separate impl for the default
struct DefaultLoggerCreator;
#[maybe_some_other_extern_impl_attribute_if_really_necessary]
impl LoggerInterface for DefaultLoggerCreator {
  fn create_logger() -> Logger {
      Logger::default()
  }
}

// user:

struct MyLoggerCreator;
#[maybe_some_third_extern_impl_attribute_if_really_necessary]
impl log::LoggerInterface for MyLoggerCreator {
  fn create_logger() -> Logger {
      Logger::to_stdout().with_colors()
  }
}

We discussed this in the lang meeting today.  We developed a consensus that this is addressing an important problem and one that we would like to solve.
In the meeting, there were various alterations and alternatives put forward, including by @Amanieu and @tmandry.  We also wanted to cross-check this against the recenty-accepted RFC:

https://github.com/rust-lang/rfcs/pull/3484

That RFC adopts a conceptual separation between the unsafety of declaring an extern block (and verifying that the signatures within are correct) and the unsafety of calling (or otherwise using) an extern item that may have other invariants that may need to be upheld.  We just need to check that whatever we do here is consistent with that conceptually (maybe it already is).
While we allow some time for these things, in the interest of not blocking experimentation, we've decided to approve this to go forward as a lang experiment under our process for that.  @joshtriplett has offered to be the liaison.
We've opened a tracking issue for this experiment here:

https://github.com/rust-lang/rust/issues/125418

@rustbot labels -I-lang-nominated
Since the next step here is to discuss the full set of options, let's nominate the tracking issue in place of this RFC.

I wrote up my alternative proposal in #3645, which is heavily based on this one. It keeps the basic idea of just having functions that defined downstream and resolved by the linker, but changes the syntax to look more like traits. This works better for things like the global allocator which consists of multiple functions and allows safety to be defined separately on the trait (unsafe to implement) and its functions (unsafe to call).

Move extern impls to blocks
My proposal is to move both the declarations and implementations into blocks. That would let us differentiate between functions that are unsafe to implement and functions that are unsafe to call. It would look something like this:[^extern-mod]
// alloc::global:

extern unsafe impl {
    fn allocate(layout: Layout) -> Result<NonNull<[u8]>, AllocError>;
    unsafe fn deallocate(ptr: NonNull<u8>, layout: Layout);
}

// user:

// Note the use of a path here – already allowed, except it's a module not a type!
// This means we won't have to add a new case to the syntax, and keeps things nicely grouped together.
unsafe impl alloc::global {
    fn allocate(layout: Layout) -> Result<NonNull<[u8]>, AllocError> {
        todo!()
    }

    unsafe fn deallocate(ptr: NonNull<u8>, layout: Layout) {
        todo!()
    }
}

[^extern-mod]: As I prepare to post this I see that it's quite close to a proposal for extern mod in the other thread, though it isn't clear where to hang the unsafe for impls in that proposal.
From here we can, optionally, do the following:
Unify declarations with extern "Rust" {} blocks
We can make extern "Rust" {} work exactly like extern impl above. This includes preserving namespacing of function names, unlike the "C" ABI.
If we do this we should transition the default ABI inside extern {} blocks to be "Rust". This can be done over an edition.
Also as a delta to #3484, extern "Rust" {} blocks would not need unsafe. In fact, it wouldn't make sense to mark them as such, because the compiler checks the signatures for you. We would not want to use unsafe extern to mean "unsafe to override"; instead, we should keep the extern unsafe impl {} syntax.
The first proposal is forward-compatible with this one.

Unify declarations with extern "Rust" {} blocks

No, just because you happen to be using the Rust ABI for some extern declarations, you should not thereby be forced to adopt the new compiler checks? (For example, maybe you are linking to an object file that was compiled with the same version of rustc, but is otherwise completely opaque to you.
Also, this "checked extern" feature would IIUC be able to support fns with generic type and const parameters, which is not something today's extern blocks can support; which suggests to my mind that these are distinct and non-unifiable features, despite their similarity.

For the record I don't think extern "Rust" {} is useful for anything today (possibly due to a bug); it seems to rename the function according to the C ABI, but a matching definition does not. All my attempts to use it resulted in linker errors and the only results on Github are uses of the cxx crate.

For example, maybe you are linking to an object file that was compiled with the same version of rustc, but is otherwise completely opaque to you.

Given what I said above, that's a new feature. I would argue that the default Rust ABI should check externs and require an rmeta file at minimum. But we could add unsafe "unchecked" Rust externs in the future that work across, e.g., staticlib/cdylib boundaries.

Also, this "checked extern" feature would IIUC be able to support fns with generic type and const parameters, which is not something today's extern blocks can support; which suggests to my mind that these are distinct and non-unifiable features, despite their similarity.

I can see your argument here. Ultimately it is just a question of how much we decide to semantically group the features, despite various differences in their capabilities. It would be helpful to imagine how we might represent stable ABI boundaries and see how these would fit in (cc @Amanieu).
As I said in my comment above though, it would be fine to defer the question of unifying with extern "Rust" until later, since the first part of what I propose is forward compatible with it.

For the record I don't think extern "Rust" {} is useful for anything today (possibly due to a bug); it seems to rename the function according to the C ABI, but a matching definition does not. All my attempts to use it resulted in linker errors and the only results on Github are uses of the cxx crate.

For example, maybe you are linking to an object file that was compiled with the same version of rustc, but is otherwise completely opaque to you.

Given what I said above, that's a new feature. I would argue that the default Rust ABI should check externs and require an rmeta file at minimum. But we could add unsafe "unchecked" Rust externs in the future that work across, e.g., staticlib/cdylib boundaries.

Also, this "checked extern" feature would IIUC be able to support fns with generic type and const parameters, which is not something today's extern blocks can support; which suggests to my mind that these are distinct and non-unifiable features, despite their similarity.

I can see your argument here. Ultimately it is just a question of how much we decide to semantically group the features, despite various differences in their capabilities. It would be helpful to imagine how we might represent stable ABI boundaries and see how these would fit in (cc @Amanieu).
As I said in my comment above though, it would be fine to defer the question of unifying with extern "Rust" until later, since the first part of what I propose is forward compatible with it.

For the record I don't think extern "Rust" {} is useful for anything today (possibly due to a bug); it seems to rename the function according to the C ABI, but a matching definition does not.

Even with #[no_mangle]? That sounds like a bug

Even with #[no_mangle]? That sounds like a bug

I think he's complaining that #[no_mangle] is required rather than that #[no_mangle] doesn't work..,

to conditionally provide make other functions

i assume this is a typo?
also, if i'm not mistaken, this same functionality can be provided with no_mangle and extern "Rust", cam it not?

also, if i'm not mistaken, this same functionality can be provided with no_mangle and extern "Rust", cam it not?

if there's a default body: only if your platform happens to support weak symbols, and even then it's unsafe.


Added MKMapViewExtensions

Similar to UITableView, MapView should have the same methods for registering and dequeueing. What do you think about this?
Checklist

[x] I checked the Contributing Guidelines before creating this request.
[x] New extensions are written in Swift 4.
[x] New extensions support iOS 8.0+ / tvOS 9.0+ / macOS 10.10+ / watchOS 2.0+.
[x] I have added tests for new extensions, and they passed.
[x] All extensions have a clear comments explaining their functionality, all parameters and return type in English.
[x] All extensions are declared as public.
[x] I have added a changelog entry describing my changes.

@staffler-xyz will you please look at the comments?

Sorry for the delay -> PR was updated just now :)

Hi! Thanks for the feedback @guykogus ! I updated the PR. I also noticed that this gives an error in SwiftLint:
@available(iOS 3.0, tvOS 9.2, macOS 10.9, *)

It should be enough to use this, as the deployment target is already set higher:
@available(tvOS 9.2, *)


Update virtual-machines-move-limitations.md

These marketplace items with plans attached (most PAYG resources) will not support resource group move either.

@kyle-hoyer : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@kyle-hoyer - thanks for this contribution. We have received feedback that some marketplace items support move across resource groups. #59084
We may need to add a clarification that some offerings support cross RG moves.

I have updated the article with more guidance about how to move VMs with plans.
#please-close

#please-close


Header sits on top of anchors

If you click the setuptools "3.8" link, for example, the warehouse header bar is on top of the content: https://warehouse.python.org/project/setuptools/#id1

I'm going to close this, I've started porting Warehouse over to Pyramid to ease the concerns of the custom framework-ish thing I've got going on here. That work is now on the master branch inside this repository. That work does not currently have this problem.


Add missing Transferwise target-snowflake settings

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/159
Originally created by @pnadolny13 on 2021-11-08 16:04:14

View 2 previous comments from the original issue on GitLab


[11.x] Add database connection parameter to events that implement MigrationsEvent

This PR adds the database connection that was used to run a migration to the events that implement MigrationsEvent. This allows users to not only run their code per the migration method but also as per what connection the migration used.
Example:
Event::listen(function (MigrationsEnded $event) {
    if ($event->connection === 'postgres') { // when the value is null, then that means that the default connection was used
        // Execute code
    }
});

This feature especially helps when running a multitenancy application where one wants to execute code after a migration on a particular connection is run.
Existing features are not expected to break (even on clients codebase) since this addition does not touch on them.

@taylorotwell To mean this kind of PR should be sent to master branch?


Connect two PIs to wso2 iot server from admin user

Previously I have connected one raspberry pi to my wso2 IOT server and it worked fine. It sent temperature data & turned on/off bulb correctly. Now I have connected another raspberry pi with different device ID. Actually I have enrolled a new raspberry pi device to management console. They have two different names & ids. But when I run both testAgents no one works correctly. No one sends temperature data & switches on/off the bulb. What they only do is connecting to the broker & disconnecting from the broker & nothing else. When first one is connected to broker 2nd one gets disconnected. When second one is connected 1st one gets disconnected. What can I do???????????? any help please....

Nobody knows why this is?


'pdb2mdb' is not recognized as an internal or external command

Hello,
I have some troubles to build the project.
I've got :
'pdb2mdb' is not recognized as an internal or external command,
operable program or batch file.

I have VS Studio 2015 last version.
Thanks for help

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/39149309-pdb2mdb-is-not-recognized-as-an-internal-or-external-command?utm_campaign=plugin&utm_content=tracker%2F6855523&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F6855523&utm_medium=issues&utm_source=github).

Unless you need a debug build, switch to release and use that. If you need the mdb files, you'd need to download pdb2mdb for use with the debug build.


chore(master): release 0.19.1

:robot: I have created a release beep boop
0.19.1 (2023-11-30)
Bug Fixes

update tests after ikg modifications (b2166a4)

Styles

fix and upgrade linter (3a1bbb5)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/indykite/indykite-sdk-go/releases/tag/v0.19.1 :sunflower:


How to  remove push transition

Hello,
I want to remove custom transition to other viewcontroller that I don't want pass the video.
Because now if I don't implement PassViewToProtocol in other viewcontroller I get frozen. how can I fix that issue.
Thank you so much.

3.1.0
change
self.navigationController?.mmPlayerTransition.push.pass(setting: {_ in })
and
self.navigationController?.mmPlayerTransition.push.enableCustomTransition = false


musl libc compatibility

I'm packaging sway for Void Linux currently (trying out that distro).
sway currently uses two non-standard features, which I have fixed with this PR:

backtraces made optional (Fix #383)
use qsort instead of qsort_r (Sorry, that really was necessary. c3e9ee5e43c6d7adf6d5c9b74b39a5170cfe0b02 has more details)

I've tested these commits on Void Linux with musl (I'll release my templates for this soon) and on Arch Linux (glibc of course).
Being more standard conform will not only allow musl libc users to use sway, but also users of other libc libraries and other exotic systems :+1:

Thanks!


Hoping you can help

@docfactory37 as the error message says, seems there is something already listening on port 389 in your container
Could you please give more information about:
1- which kind of host/OS and version are you running docker on (Linux, Windows, MacOSX)
2- which version of docker (output of docker version and docker info would be nice)
3- what other containers are running (output of docker ps)
3- what does as per the instruction means. Please paste your launch command and full trace
thanks

Just searching for Address already in use and errno=98 in this repository you might find some other interesting informations in these links:

Issue #252
Issue #198
PR #3738

@mbasri what is your own error case for this please ?

Hello, I get exactly the same error as @docfactory37,I just updated the version from v 1.3.0 to v 1.4.0, I use LDAPS with a custom crt file.
My DockerFile ==>
# Sources: https://github.com/osixia/docker-openldap-backup
FROM osixia/openldap-backup:1.3.0
LABEL MAINTAINER="TOTO<EMAIL_ADDRESS>
ENV HOSTNAME="openldap.toto.com"
ENV LDAP_ORGANISATION="TOTO"
ENV LDAP_DOMAIN="toto.com"
ENV LDAP_READONLY_USER="true"

# Transport Layer Security
ENV LDAP_TLS_CA_CRT_FILENAME="toto.com.crt"
ENV LDAP_TLS_CRT_FILENAME="openldap.toto.com.crt"
ENV LDAP_TLS_KEY_FILENAME="openldap.toto.com.pem"

@mbasri as stated in my previous post of issues which could be related to this one, commenting out your line
ENV HOSTNAME="openldap.toto.com" makes everything worked (after verifying that it did not if the line is kept)
I am however not sure about further impacts of removing the HOSTNAME variable but seems that other people did investigate a lot on this in the same issues comments
HTH

thank you for the quick respons, i have remove all treaces of the docker container and set it up again it is all working now.

@docfactory37 could you please then close the issue. Thanks


Figma: image with caption and credit should be refactored to make caption and credit optional parameters

In the Figma file, the image with caption and credit component should have a true/false for both caption and credit. Right now it's not clear how an image without caption should look, for example.

This has been added to the Figma design system library.
https://github.com/user-attachments/assets/c946fb48-5586-4758-aaf7-e530f39d0d77


Functions 3.x Changes

Per email:
•	Whenever anyone opens the extension, check their core tools version
•	If V3, use V3, if V1, use V1. Nothing complex here
•	If V2, show info bubble about V3, with a forward link to a doc explaining how to update and the differences V3 provides. Until customer manually updates core tools version, use V2.
•	Allow customers to preview V3 alongside V2 if they wish by leveraging dev containers. The doc referenced above should contain a link to instructions on how to set this up.

Closing as dupe of https://github.com/microsoft/vscode-azurefunctions/issues/1489


Question: Delete hooks? (for testing)

To properly test my package, I need to be able to delete collection hooks. Is this possible?
I'm trying to look through the source but I can't find anything.

Whan you add a hook you get a handler back with a remove function

Thank you! Got it working!


Microsoft.StorageTasks - Change PreviewActions API to be Location Based

ARM (Control Plane) API Specification Update Pull Request
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

[1] ARM review queue (for merge queues, see [4])
The PRs are processed by time opened, ascending. Your PR may show up on 2nd or later page.
If you addressed Step 1 from the diagram and your PR is not showing up in the queue, ensure the label ARMChangesRequested
is removed from your PR. This should cause the label WaitForARMFeedback to be added.
[2] https://aka.ms/azsdk/support/specreview-channel
[3] List of SDK breaking changes approvers in pinned Teams announcement
[4] public repo merge queue, private repo merge queue (for ARM review queue, [1])
If you need further help with anything, see Getting help section below.
Purpose of this PR
What's the purpose of this PR? Check all that apply. This is mandatory!

[ ] New API version. (Such PR should have been generated with OpenAPI Hub, per this wiki doc.)
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix swagger quality issues in S360.
[x] Other, please clarify:

Need to change an API to follow Location  Based Semantics. The API is not released yet, Manifest does not has this API endpoint and it isn't a breaking change - https://armmanifest.visualstudio.com/One/_git/Manifest?path=/MICROSOFT.STORAGETASKS/PROD/MANIFEST.JSON

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to Step 2, "ARM Review", for this PR.

Breaking changes review (Step 1)

If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you,
you must follow the breaking changes process.
IMPORTANT This applies even if:

The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
You believe there is no need for you to request breaking change approval, for any reason.
Such claims must be reviewed, and the process is the same.

ARM API changes review (Step 2)

If this PR is in purview of ARM review then automation will add the ARMReview label.
If you want to force ARM review, add the label yourself.
Proceed according to the diagram at the top of this comment.

Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
Swagger-Suppression-Process
to get approval.
Getting help

For general PR approval workflow, see the diagram at the top of this comment.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

The change is not a breaking change.
This to change the API from being subscription-wide operation to being location-specific. This is because according to ARM docs. This is because for subscription-wide operation , there is a need for a global endpoint which becomes a Single Point Of Failure for our API
Ref to Arm Doc: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/proxy-api-reference.md#subscription-wide-reads-and-actions
This API is not released to external customers and is not even in the Manifest
https://armmanifest.visualstudio.com/One/_git/Manifest?path=/MICROSOFT.STORAGETASKS/PROD/MANIFEST.JSON

/pr RequestMerge

/pr RequestMerge


BlocklyController clean up (partial)

Numerous small event corrections and clean-up in BlocklyController. Partially addresses #342.

This change is

PTAL @roboerikg

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

One bug, then

Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion.

blocklylib-core/src/main/java/com/google/blockly/android/control/BlocklyController.java, line 816 [r1] (raw file):

     */
    private BlockGroup addBlockFromTrashImpl(@NonNull Block previouslyTrashedBlock) {
        checkPendingEventsEmpty();

This should not have a checkPendingEventsEmpty() call

Comments from Reviewable

Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion, all commit checks successful.

blocklylib-core/src/main/java/com/google/blockly/android/control/BlocklyController.java, line 816 [r1] (raw file):
Previously, RoboErikG wrote…
> This should not have a checkPendingEventsEmpty() call

Done.

Comments from Reviewable