add suuport for conditional attributes/style

Hi, some time I would like to add an attribute or style when the model state changed or after an event get triggered.
It would be nice if attrs! and style! macros have the same functionality in class! macro.
with class! we can do:
class![
    "blue",
    "highlighted" => active
]

with attrs! we could have something like this:
attrs![
    At::Required => is_required
]

one problem that I see with this format, is that attributes take value so maybe we cannot use this format and we may need to come up with another format.
what I'm trying to do is build reusable views using Building pattern, here is small example:
    pub struct Input {
        name: Option<String>,
        required: bool,
        // ... the rest of input attributes
    }

    impl Input {
        pub fn name(mut self, name: String) -> Self {
            self.name = Some(name);
            self
        }

        pub fn required(mut self, required: bool) -> Self {
            self.required = required;
            self
        }

        pub fn view<Ms>(&self) -> El<Ms> {
            let mut attrs = seed::dom_types::Attrs::empty();
            if let Some(ref name) = self.name {
                attrs.add(At::Name, name);
            }
            if self.required {
                attrs.add(At::Required, "true");
            }

            input![attrs]
        }
    }

this way I can use the Input struct like this:
        form![
            Input::new()
                .name("username".into())
                .required(true)
                .view::<app::Msg>(),
            Input::new()
                .name("password".into())
                .required(true)
                .view::<app::Msg>(),
        ]

BTW thanks for making Seed!

There is special handling for some attributes like disabled (see my recent fix) - it basically removes given attribute from DOM when you set its value to false. So I think the same principle can be used for required (@David-OConnor ?).
Do you have some examples for style! macro where simple if / else for value isn't enough?
P.S. I don't fully understand why you need it in builder for creating views. I tried to write it as minimal as possible and I don't know where I would use that "better" attrs macro:
pub struct Input {
    attrs: seed::dom_types::Attrs,
}
impl Input {
    pub fn new() -> Self {
        Self { attrs: attrs!{} }
    }
    pub fn name(&mut self, name: impl Into<std::borrow::Cow<'static,str>>) -> &mut Self {
        self.attrs.add(At::Name, name.into().as_ref());
        self
    }
    pub fn required(&mut self) -> &mut Self {
        self.attrs.add(At::Required, "true");
        self
    }
    pub fn view<Ms>(&self) -> El<Ms> {
        input![&self.attrs]
    }
}

Input::new()
    .name("username")
    .required()
    .view()

There is special handling for some attributes like disabled (see my recent fix) - it basically removes given attribute from DOM when you set its value to false. So I think the same principle can be used for required (@David-OConnor ?).

There's a few other attributes that's similar to disabled (e.g. checked, multiple, readonly, .etc) not sure if they need to be handled like the way seed handle disabled attribute.
I think this need it's own issue.

Do you have some examples for style! macro where simple if / else for value isn't enough?

I don't have any use case for style! macro yet.

P.S. I don't fully understand why you need it in builder for creating views. I tried to write it as minimal as possible and I don't know where I would use that "better" attrs macro:

I think my short example doesn't show a good reason for using builder pattern. here is one function that I use to have reusable view:
// more arguments maybe added in future if needed
pub fn input(
    name: &str,
    required: bool,
    input_type: Option<&str>,
    placeholder: Option<&str>,
    max: Option<isize>,
    mid: Option<isize>,
    size: Option<isize>,
    input_handler: Option<impl FnMut(String) -> app::Msg + 'static>,
) -> El<app::Msg> {
    unimplemented!()
}

As you can see, this function have a lot of optional arguments, and using it isn't as nice as Builder structs:

pub fn view(model: &Model) -> El<Msg> {
    form![
        input(
            "username",
            true,
            None,
            Some("sami"),
            None,
            None,
            None,
            move |v| { Msg::UpdateUsername(v) }
        ),
        input(
            "password",
            true,
            Some("password"),
            None,
            None,
            None,
            None,
            move |v| { Msg::UpdatePassowrd(v) }
        ),
        input(
            "email",
            true,
            Some("email"),
            Some("email@example.com"),
            None,
            None,
            None,
            move |v| { Msg::UpdateUsername(v) }
        ),
        input(
            "phone",
            false,
            Some("tel"),
            Some("0512345678"),
            None,
            None,
            None,
            move |v| { Msg::UpdateUsername(v) }
        ),
        // the rest of the form input
    ]
}

with builder struct, this would be shorter and more readable:

pub fn view(model: &Model) -> El<Msg> {
    form![
        Input::text()
            .name("username")
            .required()
            .placeholder("sami")
            .input_ev(Msg::UpdateUsername)
            .view(),
        Input::password()
            .name("password")
            .required()
            .input_ev(Msg::UpdatePassowrd)
            .view(),
        Input::email()
            .name("email")
            .required()
<EMAIL_ADDRESS>            .input_ev(Msg::UpdateEmail)
            .view(),
        Input::tel()
            .name("phone")
            .placeholder("0512345678")
            .input_ev(Msg::UpdatePhone)
            .view(),
        // the rest of the form inputs
    ]
}

Also with builder struct we can force HTML rules in the type system, something like this:
pub struct Input {
    // omited
}

impl Input {
    pub fn text() -> TextInput {
        unimplemented!()
    }

    pub fn button() -> ButtonInput {
        unimplemented!()
    }

    // ..
}

pub struct TextInput {
    // omited
}

impl TextInput {
    pub fn view<Ms>(&self) -> El<Ms> {
        unimplemented!()
    }

    pub fn placeholder(mut self, v: &str) -> Self {
        unimplemented!()
    }

    pub fn value(mut self, v: &str) -> Self {
        unimplemented!()
    }

    // ..
}

pub struct ButtonInput {
    // omited
}

// placeholder attr doesn't apply for button so ButtonInput doesn't provide
// function for it
impl ButtonInput {
    pub fn view<Ms>(&self) -> El<Ms> {
        unimplemented!()
    }

    pub fn value(mut self, v: &str) -> Self {
        unimplemented!()
    }

    // ..
}

We can also force our own rules using builder structs.

checked has special handling. Sounds like I need to add some for readonly and multiple.

Re the original issue: We could handle it by adding a dummy val that tells the vdom (via the attribute shim) not to add that attribute at all. (ie as disabled does currently). Assuming I've understood correctly.

We could handle it by adding a dummy val that tells the render code (via the attribute shim) not to add that attribute at all. (ie as At::Disabled always does).

What about to remove special handling / the most of shims and make it more explicit / simple?
Examples:

input![ attrs!{ At::Required => true } ]  -->  <input required="true">
input![ attrs!{ At::Required => () } ]  -->  <input required>
input![ attrs!{ At::Required => Some(true)} ]  -->  <input required="true">
input![ attrs!{ At::Required => Some(()} ]  -->  <input required>
input![ attrs!{ At::Required => None } ]  -->  <input>

(Same for style!, except ()` - because I think it doesn't make sense to have style property without value)

Both solutions works for me.

I'll try to implement it like I suggested in my previous comment.
@David-OConnor Do you agree?

Yep. Should make this part of the API more consistent, at the cost of being breaking.

Thanks for the quick fix.  Should I close this ?

Yeah


About page (in GitHub-released versions?) doesn't show build qualifier (datetime)

Describe the bug
In the About page, no build qualifier is shown below the version number (e.g., expected 0.9.0-20220610, got 0.9.0-).
To reproduce the bug
Steps to reproduce the behavior:

Download 0.9.0: https://github.com/hexatomic/hexatomic/releases/download/v0.9.0/hexatomic-0.9.0-linux.gtk.x86_64.zip
Unzip and run, open the About page (Help > About)
See error

Expected behavior
I would expect the About page to show the complete build id, e.g., 0.9.0-20220610.
Screenshots

Desktop (please complete the following information):

Operating System: Ubuntu 20.04
Hexatomic Version: 0.9.0
Java Version: OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)

Additional context
Add any other context about the problem here.

D'uh! Of course there is no qualifier part of the build number, as GitHub releases only contain stable versions. The solution to this is to remove the *Build: * section altogether. This wouldn't even be helpful for bugfixing in user-built versions, as we wouldn't have access to the same build.


Webpack 2

This PR upgrades webpack to v2.
It looks our blocker (https://github.com/webpack/watchpack/pull/33) is going to be published soon.
https://github.com/webpack/watchpack/releases/tag/v1.1.2 (not released to npm yet)

Coverage increased (+2.5%) to 60.668% when pulling 4a9fbfdd8e2913ab6ff5edcf88ed34e8a5c11ab3 on webpack2 into 8c54820d5c2cf3ab2ef4448fa03dad8d073b7ab2 on master.

It seems this is a blocker for v2 release. I will add the monkey-patch if needed.

Yep. That's seems like the best way to do it.

https://github.com/zeit/next.js/pull/449/commits/fce9f02b4e5f54a4f2eb2a0f3575ab8356fa0303 is the monkeypatch


Fresh installation doesn't work. ERR_UNKNOWN_MODULE_FORMAT

Fresh installation doesn't work.
Procedures
git clone https://github.com/frandiox/reactesse-edge-template template
cd template
pnpm install  # yarn install
pnpm dev      # yarn dev

Outputs:
> reactesse-edge@ dev /home/_____/template
> vitedge --ssr --port 3333 --open

(node:5225) ExperimentalWarning: Custom ESM Loaders is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:5225) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
(node:5225) DeprecationWarning: Obsolete loader hook(s) supplied and will be ignored: transformSource
(node:5225) ExperimentalWarning: The Node.js specifier resolution in ESM is experimental.
RangeError [ERR_UNKNOWN_MODULE_FORMAT]: Unknown module format: null for URL file:///home/_____/template/node_modules/.bin/vite-ssr
    at new NodeError (node:internal/errors:393:5)
    at ESMLoader.load (node:internal/modules/esm/loader:650:13)
    at async ESMLoader.moduleProvider (node:internal/modules/esm/loader:457:11)
    at async link (node:internal/modules/esm/module_job:67:21) {
  code: 'ERR_UNKNOWN_MODULE_FORMAT'
}

Environment

node: lts (v18.12.1)
yarn: v1.22.19 | pnpm: v7.16.0
OS: Ubuntu 20 (WSL) / Windows 10 21H2 (LTSC 2021) Build 19044.2251
Shell: bash / pwsh

Missing?
Is that vitedge properly maintained?
I'm switching to historical commit then.

Hi, is this template still in maintenance?
if it is convenient for you to help solving out-of-box problems, it would be appreciated so much.


Why register the relu operator in AutogradPrivateUse1 ?

Hi,
In the pointwise_ops.cpp file, you register the relu operator in AutogradPrivateUse1, which is different with the relu_ operator. Why not  register the relu operator in PrivateUse1 ? Just like the tan and  tanh_ operators, which are registered in PrivateUse1.

Good question: dlprimitives provide several functions for activation so I tried to do something generic.  After some time I reverted back to directly implementation but this remained.
So the answer is - historically, and probably it can be implemented as all other functions without a problem.

In order to register the relu operator in PrivateUse1, I rewrite the function like that
`
Tensor & relu(Tensor & self)
{
    GUARD;
    dlprim::Tensor X = todp(self);
    Tensor out = new_tensor_as(X.shape(),self);
    dlprim::Tensor Y=todp(out);
    dlprim::core::activation_forward(X,Y,dlprim::StandardActivations::relu,getExecutionContext(self));
    sync_if_needed(self.device());
    return self;
}

`
I have succeed to build this project, but failed in the running process as follows.

Could you provide more details about how to design a custom operator and then register it ? BTW, is it also possible to register the linear and max_pool2d operator in  PrivateUse1?

As far as I remember max_pool2d and linear use custom ops because of slightly different input/output/gradient implementations for backpropogation by Torch operators and dlprimitives.
That is why custom backward function is applied. I used autograd private use any time I need little bit different backpropogation. I don't recall why I used it for ReLU but I assume I use it this way for max pooling because of different way I handle the location of "max" item for backpropogation.
I assume it can be rewritten differently but likely you'll need to change the kernels themselves in dlprimitives and run all tests.
Can you explain why it bothers you?

Tensor & relu(Tensor & self)
I assume you replacing aten::relu - it requires self to be const
Tensor relu(const Tensor & self); // {"schema": "aten::relu(Tensor self) -> Tensor", "dispatch": "True", "default": "False"}


Missing element name in log message relating to remote builds

See original issue on GitLab
In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 13:35
Summary
When doing a remote build, the following message appears:
[--:--:--][        ][   build:core activity                 ] START   Waiting for the remote build to complete

This message would be improved if it included the name of the element it related to rather than "core activity".
Steps to reproduce
Do any remote execution build and observe the logs.
What is the current bug behavior?
The element name does not appear in this log message
What is the expected correct behavior?
The element name should appear in the message.
Relevant logs and/or screenshots
Possible fixes
The element name can be added to this call to timed_activity()
Other relevant information

BuildStream version affected: 1.93.3

In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 13:58
mentioned in commit c651ac5b350adf36543638b16073f7225b7109a4

In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 13:58
mentioned in commit c651ac5b350adf36543638b16073f7225b7109a4

In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 14:04
mentioned in merge request !1955

In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 14:04
mentioned in merge request !1955

In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 14:29
mentioned in commit 7807a95c23ad1db821afa52cf46eba6b2d87b407

In GitLab by [Gitlab user @scott].clarke on Jun 3, 2020, 14:29
mentioned in commit 7807a95c23ad1db821afa52cf46eba6b2d87b407

In GitLab by [Gitlab user @scott].clarke on Jun 4, 2020, 12:34
mentioned in commit b229d528e24b4f173c612a0cc15ced76426229ba

In GitLab by [Gitlab user @scott].clarke on Jun 4, 2020, 12:34
mentioned in commit b229d528e24b4f173c612a0cc15ced76426229ba

In GitLab by [Gitlab user @willsalmon] on Jun 4, 2020, 16:39
Also, i when building small things from big bases, eg. freedesktop-sdk.bst:bootstrap/gnu-config.bst most of the time is spent uploading the rootfs, dose this message signify that the upload is complete? and the comands have started. If it is then being explicit would be great.
Also dose bst know when a job has been picked up by a worker? is that what this means?

In GitLab by [Gitlab user @willsalmon] on Jun 4, 2020, 16:39
Also, i when building small things from big bases, eg. freedesktop-sdk.bst:bootstrap/gnu-config.bst most of the time is spent uploading the rootfs, dose this message signify that the upload is complete? and the comands have started. If it is then being explicit would be great.
Also dose bst know when a job has been picked up by a worker? is that what this means?

In GitLab by [Gitlab user @scott].clarke on Jun 4, 2020, 17:02
This signifies that the upload is complete and the Execute() function of the remote is about to be invoked. I'm not sure whether bst will be able to get information about when the job has been picked up by a worker.

In GitLab by [Gitlab user @scott].clarke on Jun 4, 2020, 17:02
This signifies that the upload is complete and the Execute() function of the remote is about to be invoked. I'm not sure whether bst will be able to get information about when the job has been picked up by a worker.

In GitLab by [Gitlab user @willsalmon] on Jun 4, 2020, 17:18
Thanks [Gitlab user @scott].clarke

In GitLab by [Gitlab user @willsalmon] on Jun 4, 2020, 17:18
Thanks [Gitlab user @scott].clarke

In GitLab by [Gitlab user @scott].clarke on Jun 4, 2020, 18:48
The element name is also missing in the message which shows that the result of an action was found in the action cache.
[--:--:--][        ][   build:core activity                 ] INFO    Action result found in action cache

In GitLab by [Gitlab user @scott].clarke on Jun 4, 2020, 18:48
The element name is also missing in the message which shows that the result of an action was found in the action cache.
[--:--:--][        ][   build:core activity                 ] INFO    Action result found in action cache

In GitLab by [Gitlab user @scott].clarke on Jun 5, 2020, 09:54
mentioned in commit d2b7aba82d898f6a3e41032b3b3a66a88f19a197

In GitLab by [Gitlab user @scott].clarke on Jun 5, 2020, 09:54
mentioned in commit d2b7aba82d898f6a3e41032b3b3a66a88f19a197

In GitLab by [Gitlab user @scott].clarke on Jun 5, 2020, 11:04
mentioned in commit acdbbf730d7f63d79696644a29f447fe26aac7ec

In GitLab by [Gitlab user @scott].clarke on Jun 5, 2020, 11:04
mentioned in commit acdbbf730d7f63d79696644a29f447fe26aac7ec

In GitLab by [Gitlab user @scott].clarke on Jun 9, 2020, 09:54
mentioned in commit e6b21c0b1f6b060e1eef112a911100a84ffb7809

In GitLab by [Gitlab user @scott].clarke on Jun 9, 2020, 09:54
mentioned in commit e6b21c0b1f6b060e1eef112a911100a84ffb7809

In GitLab by [Gitlab user @scott].clarke on Jun 10, 2020, 13:29
mentioned in commit a46d7d50f1f414b1ace7f564f0b6073fe941cbd0

In GitLab by [Gitlab user @scott].clarke on Jun 10, 2020, 13:29
mentioned in commit a46d7d50f1f414b1ace7f564f0b6073fe941cbd0

In GitLab by [Gitlab user @marge-bot123] on Jun 10, 2020, 14:26
closed via merge request !1955

In GitLab by [Gitlab user @marge-bot123] on Jun 10, 2020, 14:26
closed via merge request !1955

In GitLab by [Gitlab user @marge-bot123] on Jun 10, 2020, 14:26
mentioned in commit 57c731299c0851d34774ffdcdd5960503c1f8fec

In GitLab by [Gitlab user @marge-bot123] on Jun 10, 2020, 14:26
mentioned in commit 57c731299c0851d34774ffdcdd5960503c1f8fec


Add more about cross platform docker image building

I have been searching and still didn't find an answer, maybe some one can add something on the subject in the documentation?
I use Visual Studio for Mac with a Macbook with the M2 processor so Arm based.
I would like to build an amd64 image to publish to a remote registry.
If one can write some instructions or write down that it ain't possible if that's the case please do.

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

ID: 22e20f91-d94c-419c-3a64-7616af5e7429
Version Independent ID: 0f4f0b1a-2506-ec3d-6bda-ccce7565cb64
Content: Get started with Docker - Visual Studio for Mac
Content Source: mac/docker-quickstart.md
Product: visual-studio-mac
Technology: vs-ide-general
GitHub Login: @heiligerdankgesang
Microsoft Alias: dominicn

@jhermsen -- John, thank you for your feedback.  Please consider these resources, if you haven't already:

Visual Studio on Microsoft Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

@heiligerdankgesang -- Dominic, please look into this potential documentation issue.


HSEARCH-1302 Test match on stopwords-only full-text field

https://hibernate.atlassian.net/browse/HSEARCH-1302
I just added a test for it

@fax4ever How is this test different from org.hibernate.search.integrationtest.backend.tck.search.predicate.AbstractPredicateSimpleAnalysisIT#noTokenAfterAnalysis?

In new test we have a document with a field having all stopwords... So the stopwords are provided at writing time.

In new test we have a document with a field having all stopwords... So the stopwords are provided at writing time.

I believe in org.hibernate.search.integrationtest.backend.tck.search.predicate.AbstractPredicateSimpleAnalysisIT#noTokenAfterAnalysis too, there is an indexed document containing the stopword we're looking for. See org.hibernate.search.integrationtest.backend.tck.search.predicate.AbstractPredicateSimpleAnalysisIT.DataSet#analyzedFieldValues.
If there really is a problem with the existing test, I'd recommend improving it rather than creating a new one. Backend tests are notoriously slow to start...
If there's no problem with the existing test, we can simply drop this PR :) The best code is the one you don't have to write!

You're right we already cover this case with this test! Let's close this PR!


Prepare for publishing v010 on pip

Update name from spectra to Spectra
Update pip-name to scSpectra
Restructure default data
Import SPECTRA more easily
Update default values
Update setup.py

Prepared for publish. Test on colab requires main branch.


Fix Examples/{UIExplorer,Movies}

Thanks for submitting a pull request! Please provide enough information so that others can review your pull request:
(You can skip this if you're fixing a typo or adding an app to the Showcase.)
UIExplorerActivity.java and MoviesActivity.java should override getReactNativeHost method. And this PR will fix https://github.com/facebook/react-native/issues/8215.
Test plan (required)
Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.
Make sure tests pass on both Travis and Circle CI.
Code formatting
Look around. Match the style of the rest of the codebase. See also the simple style guide.
For more info, see the "Pull Requests" section of our "Contributing" guidelines.

By analyzing the blame information on this pull request, we identified @caabernathy and @janicduplessis to be potential reviewers.

Hey! Thanks for the PR. Can you update the code to follow similar structure to the generator? You'll need to add a UIExplorerApp class and a UIExplorerActivity class, e.g. - https://github.com/facebook/react-native/blob/master/local-cli/generator-android/templates/package/MainApplication.java and https://github.com/facebook/react-native/blob/master/local-cli/generator-android/templates/package/MainActivity.java

Looks good, just the few things I mentioned and then we can merge.

@facebook-github-bot shipit


feat: Forward class attribute docstrings to instances.

This will fix #128.
Thanks for the guidance, @pawamoy.
I tried doing what was needed (follow commit message format conventions, add the test in the correct place, etc) but I might have missed something.
If so, please let me know.

I've merged as "fix" rather than "feat".

I've merged as "fix" rather than "feat".

Of course, sorry for getting that wrong.

Of course, sorry for getting that wrong.

Oh that's more a matter of opinion/maintenance rather than correctness, no worries :+1:
"Fix" conveys that this is what we support, and not something else (previous behavior for example).


Updating poll functions to return results

This PR updates the traits to allow poll() to return Result<> types if needed. I'm unsure if the UsbClass::poll() function should return a Result or not currently.

I think this PR makes sense because currently there's no way to return an error from the driver. Using PollResult::None in such situations is ambiguous.


⚠ ClamAV has degraded performance

In 6a11dcc, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 72 ms

Resolved: ClamAV performance has improved in 51fc1cd.


Decoding time for a single image

Thanks for your efforts! I have used your script to decode the prepared bitstream kodim01-lmbda-0001.bin, and the reported time is about 3~4s. Is the result normal? I feel that the decoding speed is relatively slow, but I am uncertain about the underlying reasons.
The CPU in use is Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz. And I run the script in my docker container.
Below is the original output for reference.
Using 2 cpu cores

Content of the GOP header:
---------------------------
      n_bytes_header: 9
            img_size: (512, 768)
     frame_data_type: rgb
            bitdepth: 8
        intra_period: 0
            p_period: 0
         ---------------------
Intra period is 0 and P period is 0: all intra coding!
got -1: upsampling bias

Content of the frame header:
------------------------------
      n_bytes_header: 74
latent_n_resolutions: 7
    latent_n_2d_grid: 7
  n_bytes_per_latent: [34304, 3396, 556, 604, 276, 112, 40]
     n_ft_per_latent: [1, 1, 1, 1, 1, 1, 1]
 n_hidden_layers_arm: 2
             dim_arm: 24
upsampling_kernel_size: 8
static_upsampling_kernel: False
           flow_gain: 1
    layers_synthesis: ['40-1-linear-relu', '3-1-linear-relu', '3-3-residual-relu', '3-3-residual-none']
     q_step_index_nn: {'arm': {'weight': 1, 'bias': 3}, 'upsampling': {'weight': 6, 'bias': -1}, 'synthesis': {'weight': 6, 'bias': 5}}
      scale_index_nn: {'arm': {'weight': 26, 'bias': 22}, 'upsampling': {'weight': 30, 'bias': -1}, 'synthesis': {'weight': 40, 'bias': 40}}
          n_bytes_nn: {'arm': {'weight': 1020, 'bias': 40}, 'upsampling': {'weight': 64, 'bias': -1}, 'synthesis': {'weight': 716, 'bias': 72}}
       ac_max_val_nn: 2772
   ac_max_val_latent: 19
       display_index: 0
         ------------------------
Frame decoding time: 3.704 sec
Total decoding time: 3.880 sec

Hi,
Your decoding time seems to be a little bit slower than expected. On my Mac Book Pro M2 Max, it runs approximately 3 times faster, taking around 1 second to decode an image (see log below).
We're aware of the relatively slow decoding time due to the Python implementation. We're currently working on a fast C implementation of the decoder which should bring the decoding time to 100 ms. This should be available in a few weeks :).
python3 src/decode.py -i results/image/kodak/bitstreams/kodim01-lmbda-0001.bin -o kodim01.png
Using 2 cpu cores

Content of the GOP header:
---------------------------
      n_bytes_header: 9
            img_size: (512, 768)
     frame_data_type: rgb
            bitdepth: 8
        intra_period: 0
            p_period: 0
         ---------------------
Intra period is 0 and P period is 0: all intra coding!
got -1: upsampling bias

Content of the frame header:
------------------------------
      n_bytes_header: 74
latent_n_resolutions: 7
    latent_n_2d_grid: 7
  n_bytes_per_latent: [34304, 3396, 556, 604, 276, 112, 40]
     n_ft_per_latent: [1, 1, 1, 1, 1, 1, 1]
 n_hidden_layers_arm: 2
             dim_arm: 24
upsampling_kernel_size: 8
static_upsampling_kernel: False
           flow_gain: 1
    layers_synthesis: ['40-1-linear-relu', '3-1-linear-relu', '3-3-residual-relu', '3-3-residual-none']
     q_step_index_nn: {'arm': {'weight': 1, 'bias': 3}, 'upsampling': {'weight': 6, 'bias': -1}, 'synthesis': {'weight': 6, 'bias': 5}}
      scale_index_nn: {'arm': {'weight': 26, 'bias': 22}, 'upsampling': {'weight': 30, 'bias': -1}, 'synthesis': {'weight': 40, 'bias': 40}}
          n_bytes_nn: {'arm': {'weight': 1020, 'bias': 40}, 'upsampling': {'weight': 64, 'bias': -1}, 'synthesis': {'weight': 716, 'bias': 72}}
       ac_max_val_nn: 2772
   ac_max_val_latent: 19
       display_index: 0
         ------------------------
Frame decoding time: 1.100 sec
Total decoding time: 1.235 sec

Thanks for your quick reply! Waiting for your faster implementation :)


Evaluate position of tooltip messages in form fields

USABILITY TESTING FEEDBACK
Only saw tip after he typed… didn’t realize it was for Project Title so he goes back and amends it.
Didn't notice mock project checkbox because it was hidden by tip.

it might be better to display tooltips/popovers below form fields instead of out to the right so they are in the user's field of view

mainly an issue on the create plan page. Display below the field if possible

@briri  @xsrust This code is in current development. So I think it should be available for UAT.


[PE-D][Tester D] The explanation of ObservableList is unclear about what “observed” means in this context

Labels: severity.Low type.DocumentationBug
original: yuvrajaryan/ped#5

It is presumed that the person reading the DG are current/future developers who are well verse in technical terms and will understand the terms and explanation for this DG


Setting CONFIG_COMPILER_STATIC_ANALYZER=y causes basic console example to crash (IDFGH-14094)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.4-dev-4291-g7a305c0284
Espressif SoC revision.
ESP32-S3 (QFN56) (revision v0.2)
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-S3-DevKitC-1-N8R8
Power Supply used.
USB
What is the expected behavior?
The "basic" esp_console example at https://github.com/espressif/esp-idf/tree/master/examples/system/console/basic executes normally
What is the actual behavior?
The "basic" esp_console example at https://github.com/espressif/esp-idf/tree/master/examples/system/console/basic panics at start if the kconfig option CONFIG_COMPILER_STATIC_ANALYZER=y is set (!).
Steps to reproduce.

In a fresh copy of the master branch of esp-idf, run:cd examples/system/console/basic
idf.py build && idf.py flash && idf.py monitor

Observe the esp_console example runs as expected.
Now enable CONFIG_COMPILER_STATIC_ANALYZER (which as far as I can see just adds -fanalyze to the compiler):idf.py menuconfig
# Search for and enable CONFIG_COMPILER_STATIC_ANALYZER
# Save settings and exit
idf.py build && idf.py flash && idf.py monitor

Observe the system panics in a loop due to an assertion at components/esp_driver_uart/src/uart_vfs.c:299.

Debug Logs.
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40375e20
--- 0x40375e20: esp_restart_noos at /home/eric/src/github.com/espressif/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:160

SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x1120
load:0x403c8700,len:0x4
load:0x403c8704,len:0xb2c
load:0x403cb700,len:0x2d40
entry 0x403c88a8
I (204) cpu_start: Multicore app
I (213) cpu_start: Pro cpu start user code
I (213) cpu_start: cpu freq: 160000000 Hz
I (213) app_init: Application information:
I (213) app_init: Project name:     console
I (217) app_init: App version:      v5.4-dev-4291-g7a305c0284
I (222) app_init: Compile time:     Nov 17 2024 22:21:42
I (227) app_init: ELF file SHA256:  b5276594c...
I (232) app_init: ESP-IDF:          v5.4-dev-4291-g7a305c0284
I (237) efuse_init: Min chip rev:     v0.0
I (241) efuse_init: Max chip rev:     v0.99
I (245) efuse_init: Chip rev:         v0.2
I (249) heap_init: Initializing. RAM available for dynamic allocation:
I (255) heap_init: At 3FCA4E50 len 000448C0 (274 KiB): RAM
I (260) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
I (265) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (270) heap_init: At 600FE120 len 00001EC8 (7 KiB): RTCRAM
I (277) spi_flash: detected chip: gd
I (279) spi_flash: flash io: dio
W (282) spi_flash: Detected size(8192k) larger than the size in the binary image header(4096k). Using the size in the binary image header.
I (294) sleep_gpio: Configure to isolate all GPIO pins in sleep state
I (301) sleep_gpio: Enable automatic switching of GPIO sleep configuration
I (307) main_task: Started on CPU0
I (317) main_task: Calling app_main()
I (327) example: Command history enabled

assert failed: uart_read uart_vfs.c:299 (c != NONE)

Backtrace: 0x40375ee1:0x3fca9670 0x4037e875:0x3fca9690 0x40387265:0x3fca96b0 0x42009731:0x3fca97d0 0x4200cb4a:0x3fca97f0 0x42082d2a:0x3fca9810 0x4200c153:0x3fca9830 0x4200cb4a:0x3fca9850 0x42082d2a:0x3fca9870 0x420159e6:0x3fca9890 0x42014d27:0x3fca98c0 0x420161bf:0x3fca98e0 0x4200d5e8:0x3fca9930 0x420976b7:0x3fca9980 0x4037f3ad:0x3fca99b0
--- 0x40375ee1: panic_abort at /home/eric/src/github.com/espressif/esp-idf/components/esp_system/panic.c:454
0x4037e875: esp_system_abort at /home/eric/src/github.com/espressif/esp-idf/components/esp_system/port/esp_system_chip.c:92
0x40387265: __assert_func at /home/eric/src/github.com/espressif/esp-idf/components/newlib/assert.c:80
0x42009731: uart_read at /home/eric/src/github.com/espressif/esp-idf/components/esp_driver_uart/src/uart_vfs.c:299 (discriminator 1)
0x4200cb4a: esp_vfs_read at /home/eric/src/github.com/espressif/esp-idf/components/vfs/vfs.c:922 (discriminator 4)
0x42082d2a: read at /builds/idf/crosstool-NG/.build/xtensa-esp-elf/src/newlib/newlib/libc/syscalls/sysread.c:11 (discriminator 1)
0x4200c153: console_read at /home/eric/src/github.com/espressif/esp-idf/components/esp_vfs_console/vfs_console.c:94
0x4200cb4a: esp_vfs_read at /home/eric/src/github.com/espressif/esp-idf/components/vfs/vfs.c:922 (discriminator 4)
0x42082d2a: read at /builds/idf/crosstool-NG/.build/xtensa-esp-elf/src/newlib/newlib/libc/syscalls/sysread.c:11 (discriminator 1)
0x420159e6: linenoiseProbe at /home/eric/src/github.com/espressif/esp-idf/components/console/linenoise/linenoise.c:1090
0x42014d27: esp_console_setup_prompt at /home/eric/src/github.com/espressif/esp-idf/components/console/esp_console_common.c:26
0x420161bf: esp_console_new_repl_uart at /home/eric/src/github.com/espressif/esp-idf/components/console/esp_console_repl_chip.c:255
0x4200d5e8: app_main at /home/eric/src/github.com/espressif/esp-idf/examples/system/console/basic/main/console_example_main.c:107
0x420976b7: main_task at /home/eric/src/github.com/espressif/esp-idf/components/freertos/app_startup.c:208
0x4037f3ad: vPortTaskWrapper at /home/eric/src/github.com/espressif/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

More Information.
Yes, this is extremely bizarre, but I can 100% reproduce the panic on three different devices: a generic/no-name esp32 chip rev v3.1, and two different esp32s3 boards I have including an an Espressif ESP32-S3-DevKitC-1-N8R8.
The panic is triggered after the linenoise library tries on init to send an ANSI escape code to the terminal and read its response.
As far as I can tell, CONFIG_COMPILER_STATIC_ANALYZER=y just adds the -fanalyzer flag to GCC when compiling, which I don't think is supposed to change the build artifact.  So this could be a compiler bug.

Output of $HOME/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc --version:
xtensa-esp-elf-gcc (crosstool-NG esp-14.2.0_20240906) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Thanks for the detailed report, we can reproduce it as well.
AFAICT, it like a bug introduced by ESP_STATIC_ANALYZER_CHECK in the esp-idf. If I comment out the ESP_STATIC_ANALYZER_CHECK in the esp_ringbuf/ringbuf.c, the example just works as expected.

As @suda-morris already mentioned, the problem is esp_ringbuf. ESP_STATIC_ANALYZER_CHECK was added to remove some static analyzer warning about null pointer dereferences that should never happen, but the logic was wrong.
We return pdFALSE if prvReceiveGeneric was called with any of the input pointers as NULL, but pvItem2 and xItemSize2 will only be non-null for split buffers...
We'll update this. thanks for the report.


[TEP074] Remove Image pipelineResources

Changes
This commit removes the Image Resources support.
This PR removes github.com/tektoncd/pipeline/pkg/apis/resource/v1alpha1/image
the imagedigestexporter and the docs for image resources.It also removes the
integration tests helm_task_test andhermetic_taskrun_test as these tests
are testing building against image resources.
Removal of pipelineResources, as in https://github.com/tektoncd/pipeline/issues/5967 has been broken up into removal of each resources according to small PRs.
Part of #5967
/kind misc

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Has Docs included if any changes are user facing
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[x] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
action required: please migrate off of `image` `pipelineresources` as it is removed, please refer to the doc at https://github.com/tektoncd/pipeline/blob/main/docs/pipelineresources.md#replacing-an-image-resource
`imagedigestexporter` image will not be built nor maintained from now on

/kind misc

/test tekton-pipeline-unit-tests

TestHelmDeployPipelineRun and TestKanikoTaskRun are highly dependent on imagedigestexporter, I am trying to figure out in which way shall we refactor these tests?

TestHelmDeployPipelineRun and TestKanikoTaskRun are highly dependent on imagedigestexporter, I am trying to figure out in which way shall we refactor these tests?

Can you replace the PipelineResources in these test cases with Tasks, following the migration guide?

TestHelmDeployPipelineRun and TestKanikoTaskRun are highly dependent on imagedigestexporter, I am trying to figure out in which way shall we refactor these tests?

Can you replace the PipelineResources in these test cases with Tasks, following the migration guide?

I want to change my feedback here-- I don't think these tests actually have value without the image pipelineresource, so you can go ahead and remove them.

In this PR, one question regarding removing the image resource at https://github.com/tektoncd/pipeline/pull/6002 is that dependencies is within the apis at https://github.com/tektoncd/pipeline/pull/6002. But the image resources api itself is being removed in this PR. Then in this case, there are 2 options to move forward:

etracting the image resources logics to /pkg/image to keep the imagedigestexporter image without image resources apis
remove the imageDigestExporter with this removal of image resources

Isn't imagedigestexporter part of the image resource?

Isn't imagedigestexporter part of the image resource?

I think so, so according to the dependencies we shall remove it along with the removal of the image pipelineResources apis?

/retest

/hold
This shall target to be the very last type of the removal of piplineResources according to https://github.com/tektoncd/pipeline/issues/5967#issuecomment-1428252386.
Blockers:

Migrate Kaniko Task off ImageDigestExporter
[TEP074] Remove Storage and Git PipelineResources

Blockers:

https://github.com/tektoncd/pipeline/pull/6094
https://github.com/tektoncd/pipeline/pull/6150

Thanks @JeromeJu, it sounds like those two should be part of the milestone too, or this should be removed. wdyt?

Blockers:

#6094
#6150

Thanks @JeromeJu, it sounds like those two should be part of the milestone too, or this should be removed. wdyt?

Yeah it'd be appreciated if they could be added to the milestone @afrittoli  😺 . And sorry haven't been able to do so as there has been changes on the sequence of how the implementations should be planned out.

/unhold
Not that #6150 is awaiting review, I think we could get this removed first.

/lgtm

/test pull-tekton-pipeline-beta-integration-tests


Disable readOnlyRootFilesystem for config.json ENV vars

For the ENV variables to work, config.json must be writable on the filesystem.
This is because 30-oidc-configruation.sh writes to this file to set the configuration. Without this change, the ENV configuration is ignored.

Good catch @skooNI! Could you bump the chart version to 0.1.1 please?

Good catch @skooNI! Could you bump the chart version to 0.1.1 please?

Done! Thanks for the quick response.

@skooNI Seems the latest commit is missing a DCO sign-off. If you click on the Details link of the failing DCO check, it will tell you what to do to resolve.

@skooNI Seems the latest commit is missing a DCO sign-off. If you click on the Details link of the failing DCO check, it will tell you what to do to resolve.

@nscuro Sorry about that. It should be fixed now.


add bundle analyzer for graphically detect big chunks of code

$ npm run bundle-check should open the browser with this:

Coverage decreased (-0.02%) to 73.883% when pulling a2078f0ff44fb44682549dd76a0048a2381129e8 on flavioribeiro:master into 1971508e3790cec268c41a7e47d1825e10267937 on clappr:master.

Coverage decreased (-0.02%) to 73.883% when pulling a2078f0ff44fb44682549dd76a0048a2381129e8 on flavioribeiro:master into 1971508e3790cec268c41a7e47d1825e10267937 on clappr:master.

that's awesome :+1:
i also had some very good experience with a different webpack plugin that does something similar (in case you are looking for an alternative): https://chrisbateman.github.io/webpack-visualizer/

nice ! would be interesting to use that on hls.js itself as well

I'll sent a PR to hlsjs, @mangui

you rock @flavioribeiro

Great idea, @flavioribeiro!


infra: don't restart firewalld if unit is masked

if firewalld.service systemd unit is masked, the handler will fail when
trying to restart it.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1650281
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test pipeline


[Feature] api_tests/guids to pytest [OSF-8256]

Purpose
Convert api_tests/guids from nose to pytest
for improved performance, readability, maintenance.
Changes
Re-write tests for guids detail api endpoint with pytest.
Ticket
OSF-8255

LGTM


upgrate swagger to 2.0

I like where this is going 😃  One question:
Is there a Swagger NPM module so that we don't have to check in the bower_components?

E.g. adding https://www.npmjs.com/package/swagger-ui to the dependencies and linking to it?

I was going to use NPM module instead of bower :-)

Sweet. If you can update the pull request to use it we can start getting an updated release ready 😄

Thank you again, this is great! I will try and update the plugin to our new infrastructure over the weekend, add some tests and make a v0.3.0 release.

@lpreterite Thanks again! I released the updated version as 0.3.0. One thing I changed was moving things like new feathersSwagger.utils.Definition to feathersSwagger.definition, everything else should still work the same.

Another problem in this version, property type not converted successfully, please update the following code
# utils.js@definition
keys.forEach(function (attrName) {
    let attr = model.attributes[attrName];
    let attrType = typeof attr.key !== 'undefined' ? attr.key : attr.type.constructor.prototype.key;
    var prop = property(attrType, model.attributes[attrName].type);

    result.properties[attrName] = prop;
});


mat-slider information

hello,
i need to change the color of a mat-slider based to a value received from a json, this value can be anything.
i can't see a simple solution for that, can someone point me into the right direction?
 generate all the component inside, so inlining doesn't seem a good option.

Please keep GitHub issues for bug reports / feature requests. Better avenues for troubleshooting / questions are stack overflow, gitter, mailing list, etc.


generate captions for an image or multi-images?

Firstly, i appreciate you for your code, and i am a novice.  when i trained a model, i is thinking how can i  use it to test a image. so i think maybe you have this code.

This code is based on MSCOCO dataset. If you want to test your custom image, you should resize the image to 224x224 as well as fix the 196th and 197th lines in solver.py.

Can you copy and paste the segment of code that needs to be changed and let us know what it should be changed to in order to test our own custom images? I've changed some code in solver.py so my line numbers do not match up to yours.

@alexandercameronh Hi, I am also using this model to test my own images. Have you found a solution for the same ? If yes, can you please share it ?
Thank You


Update introduction to Relations.lagda.md

Give readers a bridge from the previous chapter, clarifying the chapter's goal and linking it to the Decidability chapter.
The section below on Decidability has been merged into the introduction giving the overview of the chapter up front.

Thanks Philip, I’m not sure my suggestion is the best improvement either.
Really enjoying the book it’s a great introduction to many important ideas
Yes,  I experienced the jump from Induction to Relations as puzzling. I
couldn’t see the motivation for the change of frame of reference from
“computing” to “evidencing”.
The questions, “surely we just realised the addition relation more
directly”, and “why are changing approach here?” bugged me until I jumped
ahead and got the explanation in Decidable.
All the best,
David Pratten
Personal: @.***
Mob:   0432 844 444
Postal: PO Box 1011, Sutherland NSW 1499, AUSTRALIA
On Tue, 18 Jun 2024 at 8:49 PM, Philip Wadler @.***>
wrote:

@.**** commented on this pull request.
Thanks for the suggestion.
I deliberately avoided the approach you take in your introduction: I want
to get the reader used to thinking in terms of relations rather than
functions that yield a boolean. It is the approach of this chapter that
comes first, not the approach of chapter Decidable, so the wording you've
given is backwards of what I would say.
Did you find the chapter confusing as written? That would be a good reason
to consider some form of change, if not exactly the one you propose. The
obvious one would be to give the boolean form of less-than-or-equal first,
but I really don't want to do that.
—
Reply to this email directly, view it on GitHub
https://github.com/plfa/plfa.github.io/pull/1008#pullrequestreview-2125169157,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMXEL3Z2PIGSHHGHT6GQW3ZIAGCBAVCNFSM6AAAAABJPVAP2CVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDCMRVGE3DSMJVG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

I'm closing this,  since we're unlikely to merge this particular rewrite. Feel free to continue the discussion.


feat(backend): Update migration states

Motivation
We need to small changes to the migration states.  These states are not yet used in main, so this is just an update on a type that is unused.
Changes

Add some additional migration states.
Update the autogenerated bindings.
Add an iterator to the migration states.

Tests
There is a unit test that verifies that the iterator behaves almost like the strum iterator.

@AntonioVentilii-DFINITY  Thank you for the review!  During the data migration, the user data APIs are locked so the order of the data transfer doesn't matter.  The order happened to be the order in which I listed the managed memory structures in my notes, but any order would be fine.


Finalize DefinitionLink api

Tracks finalizing the DefinitionLink api currently in the proposed apis

I don't think we can verify things that aren't bugs (?)


how to build envoy on windows

https://github.com/envoyproxy/envoy/blob/ac03b013af22f5ced0daeedb81416603962111f6/windows/.bazelrc#L1
How to build envoy on windows?  This folder does not have a description of how to use it.

I think the Windows build is still a work in progress. If you want to experiment with it, I believe the necessary steps are encapsulated in in the ci/windows_ci_setup.ps1 and ci/windows_ci_steps.sh scripts.
cc @wrowe

@zuercher   I only find build_test.exe and  go_build_test.exe   and then what to do?

This can be reopened. At this time there is insufficient documentation surrounding what and how the CI is building, which includes the (very minimal) envoy-windows ci/windows_build_steps.sh list. We are currently working to bring the envoy sources into a buildable state, but docs remain a critical component of declaring this phase accomplished.


Add metadata field to Gopkg.toml; warn on unknown fields

As part of #276, we want to be able to provide a bit of future-proofing against the likelihood that we're going to need to add more properties to the data in Gopkg.toml and Gopkg.lock (e.g. for #291).
To that end, we should take (yet another) note from Cargo, and

Introduce a [project.metadata] field in Gopkg.toml, which should be ignored by the parser except to enforce that it's a map type.
Warn if we encounter any unknown fields in Gopkg.toml. This should help discourage unintentional use, and channel anything that users want to add into that metadata.

This may be a bit awkward, given that we don't have a project field to start with. I'm going with that, though, because I think it's likely we'll end up adding one. However, if that's too much of a pain, I'd also be good with just having a [metadata] top-level field.

What would be part of [project] and why is it likely to be added? I would prefer the top-level [metadata] field but I see the point to use project, as it would be awkward to have metadata outside of project as soon as it is introduced.
So it boils down to the probability of a project field.
And consider: if we chose [project.metadata] now, we lose the option to chose an alternative name for [project] later.

Thanks for feedback!

What would be part of [project] and why is it likely to be added?

The most immediate, functional need would be if we want to have Gopkg.toml indicate the root of the project. The reasons why that might be a good idea are pretty involved, so let's not delve into that, and just leave it at that there's a nonzero chance of wanting it.
Other members would include non-functional information common in other systems - names of authors, license, etc. Again, idk if we end up with that stuff, but there it is.

we lose the option to chose an alternative name for [project] later.

I'm not too worried about this one - I think project is pretty much settled terminology at this point, and Russ has indicated he's 👌  with it.

So it boils down to the probability of a project field.

i think mostly, yes. Though there's a possibility (let's really hope not) version the format of the file itself. If we do that, then we'd probably want a different section for that information, to clearly delineate it from information that describes the project, as opposed to the file.
I'm increasingly inclined towards using it because it seems like the safer, more future-proof thing to do.


What's new in Python 3.0

Views And Iterators Instead Of Lists

[ ] dict methods dict.keys(), dict.items() and dict.values() return “views” instead of lists. For example, this no longer works: k = d.keys(); k.sort(). Use k = sorted(d) instead (this works in Python 2.5 too and is just as efficient).
[ ] Also, the dict.iterkeys(), dict.iteritems() and dict.itervalues() methods are no longer supported.
[x] map() and filter() return iterators. If you really need a list, a quick fix is e.g. list(map(...)), but a better fix is often to use a list comprehension (especially when the original code uses lambda), or rewriting the code so it doesn’t need a list at all. Particularly tricky is map() invoked for the side effects of the function; the correct transformation is to use a regular for loop (since creating a list would just be wasteful).
[x] zip() now returns an iterator.

Ordering Comparisons

[ ] The ordering comparison operators (<, <=, >=, >) raise a TypeError exception when the operands don’t have a meaningful natural ordering. Thus, expressions like 1 < '', 0 > None or len <= len are no longer valid, and e.g. None < None raises TypeError instead of returning False. A corollary is that sorting a heterogeneous list no longer makes sense – all the elements must be comparable to each other. Note that this does not apply to the == and != operators: objects of different incomparable types always compare unequal to each other.
[ ] builtin.sorted() and list.sort() no longer accept the cmp argument providing a comparison function. Use the key argument instead. N.B. the key and reverse arguments are now “keyword-only”
[ ] The cmp() function should be treated as gone, and the cmp() special method is no longer supported. Use lt() for sorting, eq() with hash(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)

Integers

[ ] PEP 0237: Essentially, long renamed to int. That is, there is only one built-in integral type, named int; but it behaves mostly like the old long type.
[ ] PEP 0238: An expression like 1/2 returns a float. Use 1//2 to get the truncating behavior. (The latter syntax has existed for years, at least since Python 2.2.)
[ ] The sys.maxint constant was removed, since there is no longer a limit to the value of integers. However, sys.maxsize can be used as an integer larger than any practical list or string index. It conforms to the implementation’s “natural” integer size and is typically the same as sys.maxint in previous releases on the same platform (assuming the same build options).
[x] The repr() of a long integer doesn’t include the trailing L anymore, so code that unconditionally strips that character will chop off the last digit instead. (Use str() instead.)
[ ] Octal literals are no longer of the form 0720; use 0o720 instead.

Text Vs. Data Instead Of Unicode Vs. 8-bit

[ ] Python 3.0 uses the concepts of text and (binary) data instead of Unicode strings and 8-bit strings. All text is Unicode; however encoded Unicode is represented as binary data. The type used to hold text is str, the type used to hold data is bytes. The biggest difference with the 2.x situation is that any attempt to mix text and data in Python 3.0 raises TypeError, whereas if you were to mix Unicode and 8-bit strings in Python 2.x, it would work if the 8-bit string happened to contain only 7-bit (ASCII) bytes, but you would get UnicodeDecodeError if it contained non-ASCII values. This value-specific behavior has caused numerous sad faces over the years.
[ ] As a consequence of this change in philosophy, pretty much all code that uses Unicode, encodings or binary data most likely has to change. The change is for the better, as in the 2.x world there were numerous bugs having to do with mixing encoded and unencoded text. To be prepared in Python 2.x, start using unicode for all unencoded text, and str for binary or encoded data only. Then the 2to3 tool will do most of the work for you.
[ ] You can no longer use u"..." literals for Unicode text. However, you must use b"..." literals for binary data.
[ ] As the str and bytes types cannot be mixed, you must always explicitly convert between them. Use str.encode() to go from str to bytes, and bytes.decode() to go from bytes to str. You can also use bytes(s, encoding=...) and str(b, encoding=...), respectively.
[ ] Like str, the bytes type is immutable. There is a separate mutable type to hold buffered binary data, bytearray. Nearly all APIs that accept bytes also accept bytearray. The mutable API is based on collections.MutableSequence.
[ ] All backslashes in raw string literals are interpreted literally. This means that '\U' and '\u' escapes in raw strings are not treated specially. For example, r'\u20ac' is a string of 6 characters in Python 3.0, whereas in 2.6, ur'\u20ac' was the single “euro” character. (Of course, this change only affects raw string literals; the euro character is '\u20ac' in Python 3.0.)
[x] The builtin basestring abstract type was removed. Use str instead. The str and bytes types don’t have functionality enough in common to warrant a shared base class. The 2to3 tool (see below) replaces every occurrence of basestring with str.
[ ] Files opened as text files (still the default mode for open()) always use an encoding to map between strings (in memory) and bytes (on disk). Binary files (opened with a b in the mode argument) always use bytes in memory. This means that if a file is opened using an incorrect mode or encoding, I/O will likely fail loudly, instead of silently producing incorrect data. It also means that even Unix users will have to specify the correct mode (text or binary) when opening a file. There is a platform-dependent default encoding, which on Unixy platforms can be set with the LANG environment variable (and sometimes also with some other platform-specific locale-related environment variables). In many cases, but not all, the system default is UTF-8; you should never count on this default. Any application reading or writing more than pure ASCII text should probably have a way to override the encoding. There is no longer any need for using the encoding-aware streams in the codecs module.
[ ] Filenames are passed to and returned from APIs as (Unicode) strings. This can present platform-specific problems because on some platforms filenames are arbitrary byte strings. (On the other hand, on Windows filenames are natively stored as Unicode.) As a work-around, most APIs (e.g. open() and many functions in the os module) that take filenames accept bytes objects as well as strings, and a few APIs have a way to ask for a bytes return value. Thus, os.listdir() returns a list of bytes instances if the argument is a bytes instance, and os.getcwdb() returns the current working directory as a bytes instance. Note that when os.listdir() returns a list of strings, filenames that cannot be decoded properly are omitted rather than raising UnicodeError.
[ ] Some system APIs like os.environ and sys.argv can also present problems when the bytes made available by the system is not interpretable using the default encoding. Setting the LANG variable and rerunning the program is probably the best approach.
[x] PEP 3138: The repr() of a string no longer escapes non-ASCII characters. It still escapes control characters and code points with non-printable status in the Unicode standard, however.
[x] PEP 3120: The default source encoding is now UTF-8.
[ ] PEP 3131: Non-ASCII letters are now allowed in identifiers. (However, the standard library remains ASCII-only with the exception of contributor names in comments.)
[ ] The StringIO and cStringIO modules are gone. Instead, import the io module and use io.StringIO or io.BytesIO for text and data respectively.

New Syntax

[ ] PEP 3107: Function argument and return value annotations. This provides a standardized way of annotating a function’s parameters and return value. There are no semantics attached to such annotations except that they can be introspected at runtime using the annotations attribute. The intent is to encourage experimentation through metaclasses, decorators or frameworks.
[ ] PEP 3102: Keyword-only arguments. Named parameters occurring after *args in the parameter list must be specified using keyword syntax in the call. You can also use a bare * in the parameter list to indicate that you don’t accept a variable-length argument list, but you do have keyword-only arguments.
[ ] Keyword arguments are allowed after the list of base classes in a class definition. This is used by the new convention for specifying a metaclass (see next section), but can be used for other purposes as well, as long as the metaclass supports it.
[ ] PEP 3104: nonlocal statement. Using nonlocal x you can now assign directly to a variable in an outer (but non-global) scope. nonlocal is a new reserved word.
[ ] PEP 3132: Extended Iterable Unpacking. You can now write things like a, b, *rest = some_sequence. And even *rest, a = stuff. The rest object is always a (possibly empty) list; the right-hand side may be any iterable
[ ] Dictionary comprehensions: {k: v for k, v in stuff} means the same thing as dict(stuff) but is more flexible. (This is PEP 0274 vindicated. :-)
[ ] Set literals, e.g. {1, 2}. Note that {} is an empty dictionary; use set() for an empty set. Set comprehensions are also supported; e.g., {x for x in stuff} means the same thing as set(stuff) but is more flexible.
[ ] New octal literals, e.g. 0o720 (already in 2.6). The old octal literals (0720) are gone.
[ ] New binary literals, e.g. 0b1010 (already in 2.6), and there is a new corresponding builtin function, bin().
[ ] Bytes literals are introduced with a leading b or B, and there is a new corresponding builtin function, bytes().

Changed Syntax

[ ] PEP 3109 and PEP 3134: new raise statement syntax: raise [expr [from expr]].
[ ] as and with are now reserved words. (Since 2.6, actually.)
[ ] True, False, and None are reserved words. (2.6 partially enforced the restrictions on None already.)
[ ] Change from except exc, var to except exc as var. See PEP 3110
[ ] PEP 3115: New Metaclass Syntax
[ ] List comprehensions no longer support the syntactic form [... for var in item1, item2, ...]. Use [... for var in (item1, item2, ...)] instead.
[ ] The ellipsis (...) can be used as an atomic expression anywhere. (Previously it was only allowed in slices.) Also, it must now be spelled as .... (Previously it could also be spelled as . . ., by a mere accident of the grammar.)

Removed Syntax

[ ] PEP 3113: Tuple parameter unpacking removed. You can no longer write def foo(a, (b, c)): .... Use def foo(a, b_c): b, c = b_c instead.
[x] Removed backticks (use repr() instead).
[ ] Removed <> (use != instead).
[x] Removed keyword: exec() is no longer a keyword; it remains as a function
[ ] Integer literals no longer support a trailing l or L.
[ ] String literals no longer support a leading u or U.
[ ] The from module import * syntax is only allowed at the module level, no longer inside functions.
[ ] The only acceptable syntax for relative imports is from .[module] import name. All import forms not starting with . are interpreted as absolute imports. (PEP 0328)
[x] Classic classes are gone.

Library Changes

[x] _winreg renamed to winreg
[x] copy_reg renamed to copyreg
[x] Cleanup of the sys module: removed sys.exitfunc(), sys.exc_clear(), sys.exc_type, sys.exc_value, sys.exc_traceback.
[x] Cleanup of the array.array type: the read() and write() methods are gone; use fromfile() and tofile() instead. Also, the 'c' typecode for array is gone – use either 'b' for bytes or 'u' for Unicode characters.
[x] Cleanup of the operator module: removed sequenceIncludes() and isCallable().
[ ] Cleanup of the thread module: acquire_lock() and release_lock() are gone; use acquire() and release() instead.
[x] Cleanup of the random module: removed the jumpahead() API.
[x] The functions os.tmpnam(), os.tempnam() and os.tmpfile() have been removed in favor of the tempfile module.
[ ] string.letters and its friends (string.lowercase and string.uppercase) are gone. Use string.ascii_letters etc. instead. (The reason for the removal is that string.letters and friends had locale-specific behavior, which is a bad idea for such attractively-named global “constants”.)

PEP 3101: A New Approach To String Formatting

[ ] A new system for built-in string formatting operations replaces the % string formatting operator. (However, the % operator is still supported; it will be deprecated in Python 3.1 and removed from the language at some later time.) Read PEP 3101 for the full scoop.

Changes To Exceptions

[ ] PEP 0352: All exceptions must be derived (directly or indirectly) from BaseException. This is the root of the exception hierarchy. This is not new as a recommendation, but the requirement to inherit from BaseException is new. (Python 2.6 still allowed classic classes to be raised, and placed no restriction on what you can catch.)
[ ] Almost all exceptions should actually derive from Exception; BaseException should only be used as a base class for exceptions that should only be handled at the top level, such as SystemExit or KeyboardInterrupt. The recommended idiom for handling all exceptions except for this latter category is to use except Exception.
[ ] StandardError was removed (in 2.6 already).
[ ] Exceptions no longer behave as sequences. Use the args attribute instead.
[ ] PEP 3109: Raising exceptions. You must now use raise Exception(args) instead of raise Exception, args. Additionally, you can no longer explicitly specify a traceback; instead, if you have to do this, you can assign directly to the traceback attribute (see below).
[ ] PEP 3110: Catching exceptions. You must now use except SomeException as variable instead of except SomeException, variable. Moreover, the variable is explicitly deleted when the except block is left.
[ ] PEP 3134: Exception chaining. There are two cases: implicit chaining and explicit chaining. Implicit chaining happens when an exception is raised in an except or finally handler block. This usually happens due to a bug in the handler block; we call this a secondary exception. In this case, the original exception (that was being handled) is saved as the context attribute of the secondary exception. Explicit chaining is invoked with this syntax:
[ ] raise SecondaryException() from primary_exception
(where primary_exception is any expression that produces an exception object, probably an exception that was previously caught). In this case, the primary exception is stored on the cause attribute of the secondary exception. The traceback printed when an unhandled exception occurs walks the chain of cause and context attributes and prints a separate traceback for each component of the chain, with the primary exception at the top. (Java users may recognize this behavior.)
[ ] PEP 3134: Exception objects now store their traceback as the traceback attribute. This means that an exception object now contains all the information pertaining to an exception, and there are fewer reasons to use sys.exc_info() (though the latter is not removed).
[ ] A few exception messages are improved when Windows fails to load an extension module. For example, error code 193 is now %1 is not a valid Win32 application. Strings now deal with non-English locales.

Operators And Special Methods

[ ] != now returns the opposite of ==, unless == returns NotImplemented.
[ ] The concept of “unbound methods” has been removed from the language. When referencing a method as a class attribute, you now get a plain function object.
[ ] getslice(), setslice() and delslice() were killed. The syntax a[i:j] now translates to a.getitem(slice(i, j)) (or setitem() or delitem(), when used as an assignment or deletion target, respectively).
[ ] PEP 3114: the standard next() method has been renamed to next().
[ ] The oct() and hex() special methods are removed – oct() and hex() use index() now to convert the argument to an integer.
[ ] Removed support for members and methods.
[ ] The function attributes named func_X have been renamed to use the X form, freeing up these names in the function attribute namespace for user-defined attributes. To wit, func_closure, func_code, func_defaults, func_dict, func_doc, func_globals, func_name were renamed to closure, code, defaults, dict, doc, globals, name, respectively.
[ ] nonzero() is now bool().

Builtins

[ ] PEP 3135: New super(). You can now invoke super() without arguments and (assuming this is in a regular instance method defined inside a class statement) the right class and instance will automatically be chosen. With arguments, the behavior of super() is unchanged.
[ ] PEP 3111: raw_input() was renamed to input(). That is, the new input() function reads a line from sys.stdin and returns it with the trailing newline stripped. It raises EOFError if the input is terminated prematurely. To get the old behavior of input(), use eval(input()).
[ ] A new builtin next() was added to call the next() method on an object.
[x] Moved intern() to sys.intern()
[x] Removed: apply(). Instead of apply(f, args) use f(*args).
[x] Removed callable(). Instead of callable(f) you can use hasattr(f, 'call'). The operator.isCallable() function is also gone.
[x] Removed coerce(). This function no longer serves a purpose now that classic classes are gone.
[x] Removed execfile(). Instead of execfile(fn) use exec(open(fn).read()).
[x] Removed file. Use open().
[x] Removed reduce(). Use functools.reduce()
[x] Removed reload(). Use imp.reload().
[ ] Removed. dict.has_key() – use the in operator instead.

Adding a comment to see if it shows up in gitter.

FYI, this is not a full implementation

I'm going to close this and do it in smaller chunks


qemu-ovmf: broken symlink for OVMF_*.fd on aarch64-linux

Description
The symlinks for /run/libvirt/nix-ovmf/OVMF_*.fd are broken when using aarch64-linux.
$ ls -lh /run/libvirt/nix-ovmf
total 0
lrwxrwxrwx 1 root root 70 Sep  2 16:36 AAVMF_CODE.fd -> /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/AAVMF_CODE.fd
lrwxrwxrwx 1 root root 70 Sep  2 16:36 AAVMF_VARS.fd -> /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/AAVMF_VARS.fd
lrwxrwxrwx 1 root root 69 Sep  2 16:36 OVMF_CODE.fd -> /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_CODE.fd
lrwxrwxrwx 1 root root 69 Sep  2 16:36 OVMF_VARS.fd -> /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_VARS.fd

$ file /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/AAVMF_CODE.fd
/nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/AAVMF_CODE.fd: TTComp archive data, binary, 1K dictionary

$ file /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/AAVMF_VARS.fd
/nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/AAVMF_VARS.fd: data

$ file /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_CODE.fd
/nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_CODE.fd: cannot open `/nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_CODE.fd' (No such file or directory)

$ file /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_VARS.fd
/nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_VARS.fd: cannot open `/nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf/FV/OVMF_VARS.fd' (No such file or directory)

Steps To Reproduce
I apologize but I have literally no idea why qemu-ovmf is installed. However, I can ponder why.
$ nix-store --query --referrers /nix/store/pbsqw1iwkrcwqbi8ja9klqzwkw0g60av-qemu-ovmf
/nix/store/wrl6f1wkw08cfzpy7gbvl791kc8swmq3-unit-script-libvirtd-config-start

In my NixOS configuration, I have virtualisation.libvirtd.enable set to true and if that is enabled, then virtualisation.libvirtd.qemu.ovmf.enable defaults to true. This is probably what is installing qemu-ovmf.
Expected behavior
Pedantically speaking, I just expect the symlink to resolve. :)
I don't much care if (on ARM64) /run/libvirt/nix-ovmf/OVMF_CODE.fd resolves to /nix/store/<hash>-qemu-ovmf/FV/OVMF_CODE.fd or even /nix/store/<hash>-qemu-ovmf/FV/AAVMF_CODE.fd. This is really the maintainer's call.
Notify maintainers
@adamcstephens @raitobezarius
Metadata
In case one wants to look at my NixOS config: gitlab.com:thefossguy/prathams-nixos
[pratham@mahadev:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"aarch64-linux"`
 - host os: `Linux 6.1.47, NixOS, 23.05 (Stoat), 23.05.3103.841889913dfd`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.5`
 - channels(root): `"nixos-23.05"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Have you tried using /run/libvirt/nix-ovmf/AAVMF_CODE.fd ? Those, as you've discovered, are what we build on aarch64 and what you should be using. https://github.com/NixOS/nixpkgs/blob/fd9959156f79e73be5847e2b4ca363c41124ca4c/pkgs/applications/virtualization/OVMF/default.nix#L28-L32
Ideally the libvirt module would either only symlink the platform specific files, or create a common symlink target that would account for the specific platform it is running on. I'm not sure why it is the way it is, but should be handled in the module if it's not working correctly.
https://github.com/NixOS/nixpkgs/blob/fd9959156f79e73be5847e2b4ca363c41124ca4c/nixos/modules/virtualisation/libvirtd.nix#L397-L400

Have you tried using /run/libvirt/nix-ovmf/AAVMF_CODE.fd? Those, as you've discovered, are what we build on aarch64 and what you should be using.

Oh yes, sorry. I forgot to mention, I am using /run/libvirt/nix-ovmf/AAVMF_CODE.fd since I'm on aarch64. I created this issue for the broken symlink for OVMF. Everything else works as intended. :)
I don't use OVMF_*.fd on aarch64 but someone might use it for emulating x86. So a broken symlink should either be fixed with the correct file or dropped altogether to signal that it is not present. Again, this decision, I leave it to the maintainers since I already have AAVMF_*.fd working for me and OVMF_*.fd, present or absent (on aarch64), doesn't really affect me (it may affect others though).


Option to reset the directory upon request

If a configuration fails it is possible to end up in a state where no new run can be started, even if the underlying issue has been fixed.
For me, this occurred when the installed DiscoPoP version did not match the required version.
For this reason, it would be nice to have the option to reset the state of a configuration to the vanilla state upon request.
This request could for example be implemented in the right-click-menu of the configuration.
A workaround for this is restarting visual studio code, which makes it not a high priority but a possible inconvenience.

Since you can not reproduce it, let's postpone this discussion to our next meeting.

if this issue is not fixed by the new configuration management, we might have to reopen, but it seems fine currently...


[Doc Feature][Link unfurling withoutapp]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/messaging-extensions/how-to/link-unfurling-withoutapp.md
93
5
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 0ec4e11:
:warning: Validation status: warnings

File
Status
Preview URL
Details

msteams-platform/messaging-extensions/how-to/link-unfurling-withoutapp.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/how-to/link-unfurling.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/how-to/link-unfurling-withoutapp.md

Line 2, Column 8: [Warning: duplicate-titles - See documentation] Title 'Link unfurling - Teams' is duplicated in: 'messaging-extensions/how-to/link-unfurling.md(2,8), messaging-extensions/how-to/link-unfurling-withoutapp.md(2,8)'. Titles must be unique within a docset.
Line 9, Column 1: [Warning: duplicate-h1s - See documentation] H1 'Link unfurling' is duplicated with other articles: 'messaging-extensions/how-to/link-unfurling.md(9,1), messaging-extensions/how-to/link-unfurling-withoutapp.md(9,1)'. First level headings must be unique within a docset.
Line 4, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to add link unfurling with messaging extension in a Microsoft Teams app with app manifest or manually using code examples and samples.' is duplicated in 'messaging-extensions/how-to/link-unfurling-withoutapp.md(4,14)', 'messaging-extensions/how-to/link-unfurling.md(4,14)'.

msteams-platform/messaging-extensions/how-to/link-unfurling.md

Line 2, Column 8: [Warning: duplicate-titles - See documentation] Title 'Link unfurling - Teams' is duplicated in: 'messaging-extensions/how-to/link-unfurling.md(2,8), messaging-extensions/how-to/link-unfurling-withoutapp.md(2,8)'. Titles must be unique within a docset.
Line 9, Column 1: [Warning: duplicate-h1s - See documentation] H1 'Link unfurling' is duplicated with other articles: 'messaging-extensions/how-to/link-unfurling.md(9,1), messaging-extensions/how-to/link-unfurling-withoutapp.md(9,1)'. First level headings must be unique within a docset.
Line 4, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to add link unfurling with messaging extension in a Microsoft Teams app with app manifest or manually using code examples and samples.' is duplicated in 'messaging-extensions/how-to/link-unfurling-withoutapp.md(4,14)', 'messaging-extensions/how-to/link-unfurling.md(4,14)'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit f3484e2:
:warning: Validation status: warnings

File
Status
Preview URL
Details

msteams-platform/messaging-extensions/how-to/link-unfurling-withoutapp.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/how-to/link-unfurling.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/how-to/link-unfurling-withoutapp.md

Line 2, Column 8: [Warning: duplicate-titles - See documentation] Title 'Link unfurling - Teams' is duplicated in: 'messaging-extensions/how-to/link-unfurling.md(2,8), messaging-extensions/how-to/link-unfurling-withoutapp.md(2,8)'. Titles must be unique within a docset.
Line 9, Column 1: [Warning: duplicate-h1s - See documentation] H1 'Link unfurling' is duplicated with other articles: 'messaging-extensions/how-to/link-unfurling.md(9,1), messaging-extensions/how-to/link-unfurling-withoutapp.md(9,1)'. First level headings must be unique within a docset.
Line 4, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to add link unfurling with messaging extension in a Microsoft Teams app with app manifest or manually using code examples and samples.' is duplicated in 'messaging-extensions/how-to/link-unfurling-withoutapp.md(4,14)', 'messaging-extensions/how-to/link-unfurling.md(4,14)'.

msteams-platform/messaging-extensions/how-to/link-unfurling.md

Line 2, Column 8: [Warning: duplicate-titles - See documentation] Title 'Link unfurling - Teams' is duplicated in: 'messaging-extensions/how-to/link-unfurling.md(2,8), messaging-extensions/how-to/link-unfurling-withoutapp.md(2,8)'. Titles must be unique within a docset.
Line 9, Column 1: [Warning: duplicate-h1s - See documentation] H1 'Link unfurling' is duplicated with other articles: 'messaging-extensions/how-to/link-unfurling.md(9,1), messaging-extensions/how-to/link-unfurling-withoutapp.md(9,1)'. First level headings must be unique within a docset.
Line 4, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to add link unfurling with messaging extension in a Microsoft Teams app with app manifest or manually using code examples and samples.' is duplicated in 'messaging-extensions/how-to/link-unfurling-withoutapp.md(4,14)', 'messaging-extensions/how-to/link-unfurling.md(4,14)'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 7776e73:
:warning: Validation status: warnings

File
Status
Preview URL
Details

msteams-platform/TOC.yml
:warning:Warning
View
Details

msteams-platform/get-started/glossary.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/design/messaging-extension-design.md
:warning:Warning
View
Details

msteams-platform/sbs-botbuilder-linkunfurling.yml
:warning:Warning
View
Details

msteams-platform/tabs/tabs-link-unfurling.md
:warning:Warning
View
Details

msteams-platform/resources/create-messaging-extension-using-appstudio.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/how-to/enable-SSO-auth-me.md
:warning:Warning
View
Details

msteams-platform/whats-new.md
:warning:Warning
View
Details

msteams-platform/messaging-extensions/how-to/link-unfurling
:white_check_mark:Succeeded

msteams-platform/messaging-extensions/how-to/link-unfurling-without-appmd
:white_check_mark:Succeeded

msteams-platform/TOC.yml

Line 287, Column 11: [Warning: file-not-found - See documentation] Invalid file link: 'messaging-extensions/how-to/link-unfurling.md'.

msteams-platform/get-started/glossary.md

Line 105, Column 3: [Warning: file-not-found - See documentation] Invalid file link: '../messaging-extensions/how-to/link-unfurling.md'.

msteams-platform/messaging-extensions/design/messaging-extension-design.md

Line 147, Column 120: [Warning: file-not-found - See documentation] Invalid file link: '../../messaging-extensions/how-to/link-unfurling.md'.

msteams-platform/sbs-botbuilder-linkunfurling.yml

Line 10, Column 21: [Warning: file-not-found - See documentation] Invalid file link: 'messaging-extensions/how-to/link-unfurling.md'.

msteams-platform/tabs/tabs-link-unfurling.md

Line 153, Column 3: [Warning: file-not-found - See documentation] Invalid file link: '~/messaging-extensions/how-to/link-unfurling.md'.

msteams-platform/resources/create-messaging-extension-using-appstudio.md

Line 62, Column 105: [Warning: file-not-found - See documentation] Invalid file link: '~/messaging-extensions/how-to/link-unfurling.md'.
Line 243, Column 3: [Warning: file-not-found - See documentation] Invalid file link: '~/messaging-extensions/how-to/link-unfurling.md'.

msteams-platform/messaging-extensions/how-to/enable-SSO-auth-me.md

Line 119, Column 3: [Warning: file-not-found - See documentation] Invalid file link: 'link-unfurling.md'.

msteams-platform/whats-new.md

Line 216, Column 56: [Warning: file-not-found - See documentation] Invalid file link: 'messaging-extensions/how-to/link-unfurling.md'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


relaying host themselves with a different IP causes duplicated peers

Needs a mechanism of checking if the new peer is in fact the host or a duplicate other than simply comparing the IP addresses. (Because IP address can change between machines e.g. <IP_ADDRESS> vs <IP_ADDRESS>)

Solved with the socket.gethostbyname_ex function, which returns a list of IP's that the computer is associated to.


Display topology for regions

Hi,
In case of big infra, display topology from a region should be nice.
I can prepare a PR for this.
Regards ;p

It has been implemented in a slightly different way in the latest plugin release (v0.7.0).
You can now select arbitrary set of Sites and Regions on a dedicated Topology Viewer page. Please refer to #41 for details.
Feel free to upgrade and test. Your feedback is appreciated.


Feature: Vercel sponsorship

Description

Add Vercel logo at the footer.

Add "Special Thanks" at readme
https://github.com/Canner/vulcan-sql/tree/feature/vercel-sponsorship

Issue ticket number
closes #101
Additional Context

Codecov Report
Base: 92.57% // Head: 92.57% // No change to project coverage :thumbsup:

Coverage data is based on head (ab0afa3) compared to base (847bd06).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #107   +/-   ##
========================================
  Coverage    92.57%   92.57%
========================================
  Files          259      259
  Lines         3799     3799
  Branches       482      482
========================================
  Hits          3517     3517
  Misses         185      185
  Partials        97       97

Flag
Coverage Δ

build
94.90% <ø> (ø)

cli
89.38% <ø> (ø)

core
92.99% <ø> (ø)

extension-dbt
97.43% <ø> (ø)

extension-debug-tools
98.11% <ø> (ø)

extension-driver-duckdb
100.00% <ø> (ø)

extension-driver-pg
94.87% <ø> (ø)

integration-testing
96.15% <ø> (ø)

serve
90.29% <ø> (ø)

test-utility
∅ <ø> (∅)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Make the new username active in the cloud

I dont see the details or clahub

Sorry - they have now disappeared as I have approved the PR.
Next time, the PR will display this (except it will say that not all the contributors have signed):

If you could sign it next time you make a contribution, that would make it easier for me to ensure that any errors it spots are build errors. And also gives us the right to publish it!
Thanks again for making a contribution to the Mendix documentation.


How to import pdfkit in ng2/ionic 2 typescript based app

Hi, I want to use pdfKit in my ionic 2 typescript based app. Is this possible?
I gave it a try and followed these steps:

Via the ionic CLI I created a new ionic2 v2 app

I installed pdfkit and blob-stream via
npm install --save pdfkit
npm install --save blob-stream

I installed the typings:
npm install --save @types/pdfstream
npm install --save @types/blob-stream

i made a service.ts file and create the following service:

`  import { Injectable } from '@angular/core';
import * as pdfkit from 'pdfkit';
import * as blobStream from 'blob-stream';
@Injectable()
export class PdfService {

doc;
stream: blobStream.IBlobStream;

constructor() {
    this.doc = new pdfkit();
    this.stream = this.doc.pipe(blobStream());
}

createPdf() {
    this.doc.fontSize(25).text('Test PDF!', 100, 100);
    this.doc.circle(280, 200, 50).fill("#6600FF");
    this.doc.end();

    this.stream.on('finish', function () {
        window.open(this.stream.toBlobURL('application/pdf'));
    });
}

}
`

in other file I call the createPdf() function of this service, but when i do a ionic serve I get the following error:

Uncaught TypeError: fs.readFileSync is not a function
at Object. (index.js:10)

I Guess this is because pdfkit isn't available in "browser mode" at this moment, but in "node mode"???
Can anybody help me with this?

https://github.com/devongovett/pdfkit/issues/354

any update ?

+1

@mjwdoek can you pls share the code, i have a same scope to develop

fs is not available in browser but you can use pdfKit in the browser. as the documentation says
The first is to use Browserify, which is a Node module packager for the browser with the familiar require syntax. The second is to use a prebuilt version of PDFKit, which you can download from Github.
fs is for node server so this is the write error. you should find a way to skip the error.
but I dont know how to use it in angular 6. in angular 5- you can also find a way to declare fs in webpack.server.config. but ina angular 6+ there is no webpack config.

thanks for the explanation but should we let angular and webpack compile the source code. Is there a plan to do something like that ?

Currently, pdfkit needs a bundler like webpack to work on browser.
See example at https://github.com/foliojs/pdfkit/tree/master/examples/webpack