--files-from and -L together fails

Hi,
rclone v1.41

os/arch: linux/amd64
go version: go1.10

I have a folder with symbolic links, of which some are broken.
I'm creating a files-from to only use the working symbolic links.
when I pass this file
rclone copy --files-from files-from.txt /home gdrive:/home
it runs correctly, but every file is reported as:
2018/05/15 16:26:41 NOTICE: 123.txt: Can't follow symlink without -L/--copy-links
If I then add the -L
rclone copy -L --files-from files-from.txt /home gdrive:/home
The run fails with
2018/05/15 16:31:58 INFO  : Google drive root 'home': Modify window is 1ms
2018/05/15 16:31:58 ERROR : : error reading source directory: stat /home/random.txt: no such file or directory
2018/05/15 16:31:58 INFO  : Google drive root 'home': Waiting for checks to finish
2018/05/15 16:31:58 INFO  : Google drive root 'home': Waiting for transfers to finish
2018/05/15 16:31:58 ERROR : Attempt 1/3 failed with 1 errors
2018/05/15 16:31:59 ERROR : : error reading source directory: stat /home/random.txt: no such file or directory
2018/05/15 16:31:59 INFO  : Google drive root 'home': Waiting for checks to finish
2018/05/15 16:31:59 INFO  : Google drive root 'home': Waiting for transfers to finish
2018/05/15 16:31:59 ERROR : Attempt 2/3 failed with 1 errors
2018/05/15 16:31:59 ERROR : : error reading source directory: stat /home/random.txt: no such file or directory
2018/05/15 16:31:59 INFO  : Google drive root 'home': Waiting for checks to finish
2018/05/15 16:31:59 INFO  : Google drive root 'home': Waiting for transfers to finish
2018/05/15 16:31:59 ERROR : Attempt 3/3 failed with 1 errors
2018/05/15 16:31:59 INFO  :
Transferred:      0 Bytes (0 Bytes/s)
Errors:                 1
Checks:                 0
Transferred:            0
Elapsed time:        2.7s
The file /home/random.txt is a symbolic link where the source is missing, so broken.
It seems that --from-file is ignored when -L is added into the command line.
Thank you,

Hi,
Using rclone v1.41 as well.
To add on top of that and make it more general, it seems that any of the filtering options (--exclude, --exclude-from) are behaving the same way when -L/--copy-links option is used. Seems that symlinks are evaluated before processing filtering.
This issue has been already mentioned on the forum

Do either of you want to help fix this?  I can walk you through it if you want.

@ncw
I can do that. You can give me some hints if you have ;)

@TenGumis I think this is the problem code
https://github.com/ncw/rclone/blob/05edb5f501a107e763e437322f269c6879b84de6/backend/local/local.go#L247-L251
We just want to change the error handling here to call fs.Errorf(...) to log message, and fs.CountError(err) to count an error in the sync, then skip that object out of the sync (continue the loop).  Might want to wrap the error in a fserrors.NoRetryError(), eg fs.CountError(fserrors.NoRetryError(err)) so the sync doesn't get retried to retry this error.
Give it a test manually then write a unit test.  Don't run the unit test on windows as it doesn't have symlinks.

This has been fixed now - see 9b827be41874f781e7d985becbfdda4684e68503 and look for it in the latest beta


Poisoning of DictKey in transaction

It's possible to poison a DictKey with a shared key from an aborted transaction.
TEST_CASE_METHOD(CBLTest_Cpp, "Poison DictKey") {
    auto key = FLDictKey_Init("a"_sl);
    CHECK(key.private5 /* _hasNumericKey */ == false);

    {
        Transaction t(db);

        MutableDocument doc(nullptr);
        doc["a"] = "a";
        db.saveDocument(doc);

        auto loadedDoc = db.getDocument(doc.id());
        FLDict_GetWithKey(loadedDoc.properties(), &key);

        t.abort();
    }

    CHECK((int32_t)key.private4 /* _numericKey */ == 0);
    CHECK(key.private5 /* _hasNumericKey */ == true);

    MutableDocument doc(nullptr);
    doc["b"] = "b";
    db.saveDocument(doc);

    auto loadedDoc = db.getDocument(doc.id());
    auto value = FLDict_GetWithKey(loadedDoc.properties(), &key);
    CHECK(value != nullptr);
    CHECK(slice(FLValue_AsString(value)) == "b");
}

The test case above passes even though the last two checks should fail it.
I think a reasonable approach would be for DictKey to not store shared keys when used within a transaction.

There are other scenarios where DictKeys can be dangerous.
I'm not 100% sure how, but it seems to be possible that when a DictKey is used in a pull filter, it stores a shared key that is later used for a different key and subsequently looks up wrong values. This was discovered in this issue.
Every query result set has its own SharedKeys instance, so it's not safe to shared DictKeys between the documents and query results.
It would be great to have some guidance for how to use DictKeys safely.

Thanks for reporting the issue as always. From what you described, the FLDictKey could be internally mutated with a shared key after the doc is saved and the shared key may not always valid (e.g. the rollback situation).
Honestly, I'm not familiar with using the FLDictKey so I will need to check with the core team to see if this is an issue or we need a guideline.

Thanks, @pasin. For now, I can just not use FLDictKeys.

Shared keys are shared among all documents of the same database. I think this is the basic principle.
In your example, first, you saved a doc in a transaction. Inside the transaction, "key" is received integer number meaningful in the context of shared keys. However, you aborted transaction in the end. The database knows how to rollback the shared keys, in addition to rolling back the kv-tables. The result is, the number associated with the shared keys lost its meaning.
Now, you saved a new document with the same key, "a". This time, you did it without using transaction, meaning modifications are committed right away. Since the last save was aborted, the shared keys are empty before the second save. So, after the second save, shared keys will have a new key, "b". Since it's the only key, it got 0 zero again. In the new document, 0 mapped to "b".
All worked as expected. The guidance here is, re-init the FLDictKey after that transaction is aborted.

Thank you for look into this issue @jianminzhao!
But I disagree that the behavior wrt. transactions is reasonable. It is not documented, but even if it were, it is a foot gun which makes FLDictKeys unnecessarily difficult to use. A fix is straightforward (please see https://github.com/couchbase/fleece/pull/168).

I understand that a FLDictKey must only be used with Fleece data that shares the same SharedKeys.
What is still not clear to me is where the boundaries for SharedKeys are meant to be within Couchbase Lite. This is the situation as far as I can tell:

Documents from the same database share the same SharedKeys.
Results from the same query execution share the same SharedKeys (which are distinct from the SharedKeys of the database).
Pulled documents that have not been inserted into the database use a temporary SharedKeys instance.

The first two points need to be documented somewhere wrt. using FLDictKey with Couchbase Lite, IMHO.
I believe the last point is an implementation detail that should not be visible to users. These documents are seen by the pull filter. Accessing those documents with DictKeys can lead to the same issue as with rolled back transactions if a document is rejected by the pull filter. The fix mentioned above also solves this issue because plain SharedKeys (no subclass of fleece::impl::SharedKeys), which are used for the temporary SharedKeys, are permanently in a transaction ( _inTransaction is initialized to true and never changed).

Closed as the issue has been fixed.


New Alpine based image + upgraded Nexus to 3.0.1-01

Changed base image to alpine:3.4
Used anapsix/alpine-java Dockerfile as a basis to install Java with the caveat that anapsix/alpine-java cannot run OrientDB due to removing portions of the JRE, so it needed editing
Inlined ENV and RUN lines to build faster and smaller image.

 Run download and install Nexus here.
]

ADD rootfs /

EXPOSE 8081

ENTRYPOINT ["/init"]

[
Not use CDM, use 'run' file in /rootfs/etc/services.d/
]

Create the structure equals this example: https://github.com/just-containers/base-alpine
/rootfs/etc/cont-finish.d/
/rootfs/etc/cont-init.d/
/rootfs/etc/fix-attrs.d/
/rootfs/etc/services.d/
/rootfs/etc/services.d/nexus/

Create the 'run ' file in /rootfs/etc/services.d/nginx/run:
#!/usr/bin/with-contenv sh

exec /opt/sonatype/nexus/bin/nexus run;

```

And create the 'finish' file in /rootfs/etc/services.d/nginx/finish, to kill container:

```
#!/usr/bin/execlineb -S1

# only tell s6 to bring down the entire container, if it isn't already doing so
# http://skarnet.org/software/s6/s6-supervise.html
if { s6-test ${1} -ne 0 }
if { s6-test ${1} -ne 256 }

s6-svscanctl -t /var/run/s6/services
```

Thanks for the alpine image updates, but this is an OS that we don't officially support, and we plan to continue shipping the docker image using an OS that we do support (centos).


MEDIUM priority articles to migrate

[x] #1058
[x] #1059
[x] #1060
[x] #1061
[x] #1062
[x] #1063
[x] #1064
[x] #1065
[x] #1066
[x] #1067
[x] #1068
[x] #1069
[x] #1070
[ ] #1071
[x] #1072
[x] #1073
[x] #1074
[x] #1075
[x] #1076
[x] #1077
[x] #1078
[x] #1079
[x] #1080
[x] #1081
[x] #1082
[x] #1083
[x] #1084
[x] #1085
[x] #1086
[x] #1087
[x] #1088
[x] #786
[x] #1298
[ ] #1299
[x] #1300
[x] #1301
[ ] #1302
[x] #1303
[ ] #1304
[x] #1305
[x] #1306

Migration phase complete, no need to track the issues in an epic.


App crash in release mode when using 'View.propTypes.style'

Is this a bug report?
Yes
Have you read the Contributing Guidelines?
Yes
Environment
Environment:
OS:  macOS High Sierra 10.13
Node:  8.7.0
Yarn:  1.2.1
npm:  5.4.2
Watchman:  4.7.0
Xcode:  Xcode 9.0.1 Build version 9A1004
Android Studio:  2.3 AI-162.4069837
Packages: (wanted => installed)
react: 16.0.0 => 16.0.0
react-native: 0.49.3 => 0.49.3
Steps to Reproduce
(Write your steps here:)

using 'View.propTypes.style'
app crash in release mode
not crash in debug mode.

Expected Behavior
App work well
Actual Behavior
Crash
(Write what happened. Add screenshots!)
undefined is not an object(evaluating '_reactNative.View.propTypes.style')
Reproducible Demo
https://snack.expo.io/SkG37a0a-

View.propTypes.style isn't valid and printed a deprecation message for several releases before it was removed. Use ViewPropTypes.style instead.

@ide why View.propTypes.style working in develop build ?

We have found the same issue. It only crashes in release mode, but running the packager locally in debug mode it works

We have run into this issue as well - runs fine in Debug, crashes in Release.
That's not how things are supposed to work!  8-(

This is because of the Reactoron, which is not available at release mode.
Install the plugin which will remove the Reactoron and its calls at time of creating release build.
Follow the instruction. (Not sure if it will work for others who are not using Ignite)
Ignite-Ignore-Reactotron
Hope this will help.

@ghoshabhi  How you remove View.propTypes.style.
My project is working in simulator but not in real device.
How i find which library have issue.
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"axios": "^0.17.1",
"react": "16.0.0-beta.5",
"react-native": "0.49.3",
"react-native-collapsible": "^0.9.0",
"react-native-country-picker-modal": "^0.5.1",
"react-native-dash": "0.0.7",
"react-native-datepicker": "^1.6.0",
"react-native-elements": "^0.17.0",
"react-native-form-validator": "^0.2.0",
"react-native-modal-dropdown": "^0.5.0",
"react-native-router-flux": "^4.0.0-beta.28",
"react-native-vector-icons": "^4.4.2",
"react-navigation": "^1.0.0-beta.13",
"react-redux": "^5.0.6",
"redux": "^3.7.2",
"redux-logger": "^3.0.6",
"redux-persist": "^5.5.0",
"redux-thunk": "^2.2.0",
"rm": "^0.1.8",
"validate.js": "^0.12.0"
},
"devDependencies": {
"babel-jest": "21.2.0",
"babel-preset-react-native": "4.0.0",
"jest": "21.2.1",
"react-test-renderer": "16.0.0-beta.5"
},

@arunjkumarp : I searched for View.propTypes.style in my project and removed at all the places I found it (I found only one)!

@ghoshabhi
Follow steps on following page.
https://github.com/infinitered/babel-plugin-ignite-ignore-reactotron

@carsonwah I have the same views... what did you do to get around the issue being in other packages?

@DanDatefit I search for "View.propTypes.style" in my node_modules/ (with sublime) and identify which packages are crashing. I basically updated them and it is working now (thankfully).
If you have some packages that did not update for this because of out of maintainence, I guess you should:

Fork it
Edit it
In your package.json, change the dependency of that package to pointing to your forked repo

DO NOT directly modify node_modules.

A little tip for anybody trying to find what dependencies they have that are using View.propTypes.style and causing issues, you can run this in your project directory:
grep -onr "View.propTypes.style" .

Options

-o Only outputs the matching text (for a clean output).
-n Shows the line number the matching text is on.
-r Recursively checks the directory and subdirectories.

Example Output
./node_modules/react-native-sortable-list/src/Row.js:12:View.propTypes.style
./node_modules/react-native-sortable-list/src/SortableList.js:19:View.propTypes.style
./node_modules/react-native-sortable-list/src/SortableList.js:20:View.propTypes.style
./node_modules/react-native-swiper/src/index.js:103:View.propTypes.style

That will help you establish which dependencies you need to update in order to update to React Native 0.49+

I have found that situation react native 0.55.4.
So I have replaced View.propTypes.style with ViewPropTypes.style.
Then it works well in release mode.

I have tried the above methods however none of them is solving my issue:

this is my index.js file:
import { View, Modal, Text, ScrollView, TouchableOpacity, Image } from 'react-native';
import PropTypes from 'prop-types';
import styles from './style';
import BaseComponent from './BaseComponent';

let componentIndex = 0;

const propTypes = {
  data: PropTypes.array,
  onChange: PropTypes.func,
  initValue: PropTypes.string,
  style: View.propTypes.style,
  selectStyle: View.propTypes.style,
  optionStyle: View.propTypes.style,
  optionTextStyle: Text.propTypes.style,
  sectionStyle: View.propTypes.style,
  sectionTextStyle: Text.propTypes.style,
  cancelStyle: View.propTypes.style,
  cancelTextStyle: Text.propTypes.style,
  overlayStyle: View.propTypes.style,
  cancelText: PropTypes.string,
};

const defaultProps = {
  data: [],
  onChange: () => {},
  initValue: 'Select me!',
  style: {},
  selectStyle: {},
  optionStyle: {},
  optionTextStyle: {},
  sectionStyle: {},
  sectionTextStyle: {},
  cancelStyle: {},
  cancelTextStyle: {},
  overlayStyle: {},
  cancelText: 'cancel',
};

export default class ModalPicker extends BaseComponent {
  constructor() {
    super();

    this._bind('onChange', 'open', 'close', 'renderChildren');

    this.state = {
      animationType: 'slide',
      modalVisible: false,
      transparent: false,
      selected: 'please select',
      data: [],
    };
  }

  componentDidMount() {
    this.setState({ selected: this.props.initValue });
    this.setState({ cancelText: this.props.cancelText });
  }

  componentWillReceiveProps(nextProps) {
    this.setState({ data: nextProps.data });
  }

  onChange(item) {
    this.props.onChange(item);
    this.setState({ selected: item.label });
    this.close();
  }

  close() {
    this.setState({
      modalVisible: false,
    });
  }

  open() {
    this.setState({
      modalVisible: true,
    });
  }

  renderSection(section) {
    return (
      <View key={section.key} style={[styles.sectionStyle, this.props.sectionStyle]}>
        <Text style={[styles.sectionTextStyle, this.props.sectionTextStyle]}>{section.label}</Text>
      </View>
    );
  }

  renderOption(option) {
    return (
      <TouchableOpacity key={option.key} onPress={() => this.onChange(option)}>
        <View
          style={[
            styles.optionStyle,
            this.props.optionStyle,
            {
              flex: 1,
              flexDirection: 'row',
              justifyContent: 'space-between',
              alignItems: 'center',
            },
          ]}
        >
          <View style={{ flex: 0.15 }}>
            <Image source={option.image} resizeMode="stretch" style={{ width: 30, height: 16 }} />
          </View>
          <View style={{ flex: 0.7, alignItems: 'center' }}>
            <Text
              style={[
                styles.optionTextStyle,
                this.props.optionTextStyle,
                { color: '#434343', fontSize: 14 },
              ]}
            >
              {option.label}
            </Text>
          </View>
          <View style={{ flex: 0.15, alignItems: 'flex-end' }}>
            <Text
              style={[
                styles.optionTextStyle,
                this.props.optionTextStyle,
                { color: 'grey', fontSize: 12 },
              ]}
            >
              {option.dialCode}
            </Text>
          </View>
        </View>
      </TouchableOpacity>
    );
  }

  renderOptionList() {
    const options = this.state.data.map((item) => {
      if (item.section) {
        return this.renderSection(item);
      }

      return this.renderOption(item);
    });

    return (
      <View
        style={[styles.overlayStyle, this.props.overlayStyle]}
        key={`modalPicker${componentIndex++}`}
      >
        <View style={styles.optionContainer}>
          <ScrollView keyboardShouldPersistTaps="always">
            <View style={{ paddingHorizontal: 10 }}>{options}</View>
          </ScrollView>
        </View>
        <View style={styles.cancelContainer}>
          <TouchableOpacity onPress={this.close}>
            <View style={[styles.cancelStyle, this.props.cancelStyle]}>
              <Text style={[styles.cancelTextStyle, this.props.cancelTextStyle]}>
                {this.props.cancelText}
              </Text>
            </View>
          </TouchableOpacity>
        </View>
      </View>
    );
  }

  renderChildren() {
    if (this.props.children) {
      return this.props.children;
    }
  }

  render() {
    const dp = (
      <Modal
        transparent
        ref={(ref) => { this.modal = ref; }}
        visible={this.state.modalVisible}
        onRequestClose={this.close}
        animationType={this.state.animationType}
      >
        {this.renderOptionList()}
      </Modal>
    );

    return (
      <View style={this.props.style}>
        {dp}

        <TouchableOpacity onPress={this.open}>{this.renderChildren()}</TouchableOpacity>
      </View>
    );
  }
}

ModalPicker.propTypes = propTypes;
ModalPicker.defaultProps = defaultProps;

I am having the same issue when i replace View.propTypes.style with ViewPropTypes.style it worked fine but when i again compile my app by command "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res" it again start giving the same error

plz help asap i am working on window with ver-0.55.4

@ide @carsonwah @sytolk  @joshuapinter  In my app there is no View.propTypes.style but coming the same error. for more details please check my question from this link Thanks.

@ide @carsonwah @sytolk  @joshuapinter  In my app there is no View.propTypes.style but coming the same error. for more details please check my question from this link Thanks.


Recontinuing asphyxia - looking for devs

Me and my friend decided we want to recontinue this cheat as its very clean and we like the code. If anyone agrees and wants to recontinue this contact kauri6 on discord. We are looking for reverse engineers as we can manage the rest. If we find people that wanna work we will make a fork and update it, we plan to make it a full cheat, with legit and basic rage functions. Hopefully this is ok with @maecry

Right now we are attempting to update everything so it doesn't crash and failing horribly.

Asphyxia is not discontinued afaik.
Dude is just busy with life, create a PR if you make any changes or fixes.


Fixed typo in global_step number acquisition

Added self reference since it was missing.
The self reference was missing, so it was added. If self is not mentioned, an error will always occur.

Thanks for the fix!


Support to chat.postMessage.unfurl_links

In the Slack API docs, there are plenty of arguments for chat.postMessage, including unfurl_links:
https://api.slack.com/methods/chat.postMessage
However in this SDK there only a few arguments documented:
https://slack.dev/python-slack-sdk/api-docs/slack_sdk/web/client.html#slack_sdk.web.client.WebClient.chat_postMessage
Overviewing the source code, it seems to forward the arguments to the API:
return self.api_call("chat.postMessage", json=kwargs)
Does it actually work or the arguments need to be manually mapped?
If so, may I contribute with a pull request?

Hi @fsmaia, thanks for taking the time to write in!
The method keyword args in WebClient are only for required ones so far (although there are some exceptions though).

Does it actually work or the arguments need to be manually mapped?

No, it doesn't. You can use any additional keys in any methods.
response = client.chat_postMessage(
    text="Hi there!",
    blocks=[ { ... } ],
    unfurl_links=True,
)

If so, may I contribute with a pull request?

Thanks for saying this! Having optional ones too should be even more helpful for developers, but we don't have the bandwidth to work on it in the short term. When we do this, we want to make all the methods consistent. I will create a new issue for the optional argument addition.
If everything is clear, would you mind closing this issue?

For sure, thanks for the explanation and for the attention!


controller: API deprecation

There should be a page in the docs listing all deprecated endpoints and when they will be removed (possibly generated from a GET /deprecations endpoint?)
Requests to a deprecated endpoint should return a header specifying when it will be removed

Dependent on #2261

Flynn is unmaintained and our infrastructure will shut down on June 1, 2021. See the README for details.


Image bar looks wired

When a new user go to side then image bar looks wired sometime, the size of that is very big. You can see in Screen Shot it has covered a part of cards.

Hey @Vikash-8090-Yadav I am a contributor at GSSOC. kindly assign me this issue.

Improvement we should do:

Hey, this widget is from the arcana. As of now, it's impossible to change this UI. If you find anything then feel free to open this issue. Thanks!

Ohh OK

@Vikash-8090-Yadav One more issue i found that is footer do not have links of any social can i create a new issue and start working on it

Currently Sal Dapp has not on any social media . Thats y. In future will add this .Thaks uh!

Sure


name resolving between stacks not working

am I really the first one or it's not the right place?
tried latest docker-cloud by installing the dockercloud-agent according to documentation.
in Tutum it worked fine when following the guidelines to connect between a service in one stack to one in another (via service_name.stack_name).
With docker cloud we keep getting <IP_ADDRESS> as a hint that the DNS agent actually goes to some public DNS instead of resolving the names internally. ping from withing the container to other containers/service names within the stack works fine.
docker version 1.9.1-cs2, build 4ade326 (the dockercloud-agent installed it I believe)

update: we work-around this issue by concatenating the search name from /etc/resolv.conf to the upstream host name, i.e. "service_name.stack_name.$(head -1 /etc/resolv.conf | cut -d ' ' -f 2)"
that's funny that this DNS service is totally public and thus could expose internal ips topology to any outside query...

I see you have created the topic on the Docker Forums - thanks, that's the right place to discuss this. I'll reply there.


(Bug?) Close the app before running the patcher

Hello, as the title says everytime i try to run the node patch command it gives me the following output

TIDAL Enhanced Patcher - https://github.com/nekusu
Close the app before running the patcher!

Following the usage instructions on the main page:

I have installed the latest version available of nvm (1.19.0)
I told nvm to use the latest LTS version: (18.12.0) of node.js available
I have tried to run the command: git clone git@github.com:nekusu/tidal-enhanced-patcher.git but it gave me acces denied as output
So i cloned the rep by using git clone https://github.com/nekusu/tidal-enhanced-patcher.git
Then i moved to the main folder and tried to use the command node patch

[x] I've closed tidal and made sure no process of the exe were executing in background
[x] I've closed Discord and related threads
[x] I've tried to run the command just after i've restarted my pc but I still get the same error.

Hello, sorry for the delay. Thank you for leaving a well detailed issue.
I imagined that the way to check if the process was running was going to give problems at some point, I'll push a fix in a few moments. Let me know if you have any other problems.

Hello!
Thanks for helping me, with the latest fix now everything works correctly!
Have a good day.


Update reference-near-edge-compute.md

Remove Dell as the hardware vendor from public facing docs

Remove Dell as the hardware vendor from public facing docs


grid sample

Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?
[ ] If you made a notable change (that affects users), did you update the CHANGELOG?

What does this PR do?
Fixes # (issue).
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

Hello @williamFalcon! Thanks for updating this PR.

In the file pytorch_lightning/trainer/evaluation_loop.py:

Line 381:23: E702 multiple statements on one line (semicolon)


Add 24-bit RNG to compiled programs

If there's a generic way to recycle entropy rather than throwing out everything beyond 12/24 bits per call that would be nice, but I don't think it's easy to do that without hardcoding every case. Maybe special-case 0x7fff'ffff and 0x0000'7fff (Linux and Windows respectively) as the most common values?

Going to rewrite this to have less #ifs by hand-rolling a PRNG.


Azure CLI on Windows takes very long time to update

Describe the bug
Azure CLI on Windows takes very long time to update using az upgrade command. Updating takes at least 20-30 minutes to complete.
This time I'm updating CLI from version 2.20.0 to 2.27.0 but it has always been like this.
To Reproduce
Run az upgrade command and follow the setup wizard.
Expected behavior
Azure CLI should update more quickly for better user's productivity.
Environment summary
Windows 10 21H1 / PowerShell 5.1 / Command Prompt / Azure CLI v. 2.20.0
Additional context
This isn't really a bug but I feel Azure CLI should update more quickly to encourage users to update. Taking lots of time to update makes it less desirable to spend time on updating.

@jiasli for awareness

Which step takes most of the time?
If the installation is stuck at "Preparing to install...", it means you have bad download speed.

Could you try to download from https://aka.ms/installazurecliwindows and install the latest version manually?

@jiasli The "Preparing to install" step was not that long. It's the installation steps. I couldn't remember which exact step(s). But from the beginning to the end it took about 30 minutes. My internet connection speed is pretty good, I tried downloading the setup file from the link you provided and it took less than 30 seconds.
Here is the result from running Get-History |fl. I think the ExecutionStatus is "Stopped" because after the installation wizard completed, the command asked Terminate batch job (Y/N)?. The EndExecutionTime might be a bit later than actual installation time as I did not answer Y immediately but not that long after. You can see that from start to end time, it took 32 minutes.

The update on my PC is now complete shortly after I posted this issue so I couldn't try updating it manually like you said. Is there anything else I can try instead? I can try uninstalling and re-install it if you want.
How long does it usually take for you (or anybody else) to update the CLI?


Mobile Searches not working in India

The code executes and searches for mobile searches, but the points don't add up in the total points. This happens only when I execute the code in India. On my VM in the US, it works perfectly fine.

Unfortunately, I am unable to debug or test a solution for this as I am based in the USA. However, I know Bing sometimes tends not to credit for some searches-- I am not entirely sure if it is because of geographic location.


replace %svelte.body% etc with %sveltekit.body%

Never got round to creating an issue for this, but I think it's a no-brainer — we should have been more explicit from the start that %namespace.body% is a SvelteKit thing, not a Svelte thing
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

I find it unnecesary long... can't we just have %kit.body% ? shorter to write if someone will write their own custom template or modify it.

@Rich-Harris
While we're at it, the root context for $app/stores is called __svelte__ (see here). Seems like renaming it to __sveltekit__ would fit well with this PR?

We can make the __svelte__ change separately since it's internal rather than external — it would probably be better to use a private object as the key rather than a magic string, but I don't know off the top of my head if that'd be a rabbit hole


Do not get goaccess to work with my log file

Hi, I went through all kind of issues, but I am not able to get the default vcombined to work
THis is an example of a line:
testma.mantagifts.com:443 ip-217-105-39-28.ip.prioritytelecom.net - mantasalesapp [04/Oct/2018:07:53:48 +0200] "POST /sales_app/backups/backup.php HTTP/1.1" 200 427 "-" "Appcelerator Titanium/7.4.0 (iPad/12.0; iOS; en_US;)"
This is my command:

goaccess /var/log/apache2/access_ssl_testma.mantagifts.com.log --log-format=VCOMBINED

..
Token 'ip-217-105-39-28.ip.prioritytelecom.net' doesn't match specifier '%h'
..
Format Errors - Verify your log/date/time format
I have tried multiple thinkgs (custom log, time etc),but nothing seem to work. Can you help me with this?
Thanks

You need a valid IPv4/6. GoAccess doesn't parse the hostname as it's not completely unique. You will need to strip it out from your log and replace it with a valid IP, or skip resolving the IP.

Ok, thanks. Will manage this

Closing this, feel free to reopen it if needed.


PyPi?

Please release this library to PyPi.org, which would make it easier to install. Thanks :)

I've added PyPi releases through GitHub Actions here is the project, the releases still require testing so please give it a shot!
Leaving open for feedback.


getdns: init at 1.3.0

Motivation for this change
Previous pull request ( #34910) got accidentally trampled because of detached HEAD.
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build getdns

Success on x86_64-linux (full log)
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0
shrinking /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0/bin/getdns_query
shrinking /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0/lib/libgetdns.so.6.3.0
gzipping man pages under /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0/share/man/
strip is /nix/store/5qj61lcvzlap87rf6blvf8p577d482bv-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0/lib  /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0/bin
patching script interpreter paths in /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0
checking for references to /tmp/nix-build-getdns-1.3.0.drv-0 in /nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0...
/nix/store/6rjhprzxl4xa69y5z23miih8i8r8h1av-getdns-1.3.0

Success on x86_64-darwin (full log)
Partial log (click to expand)
***  validation, we strongly recommend removing the trust anchors
***  on the default location when there is no active external
***  trust anchor management keeping it up-to-date.
***
post-installation fixup
gzipping man pages under /nix/store/0pqmghn455vvq1crnv37r42c1sb44hds-getdns-1.3.0/share/man/
strip is /nix/store/5a88zk3jgimdmzg8rfhvm93kxib3njf9-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/0pqmghn455vvq1crnv37r42c1sb44hds-getdns-1.3.0/lib  /nix/store/0pqmghn455vvq1crnv37r42c1sb44hds-getdns-1.3.0/bin
patching script interpreter paths in /nix/store/0pqmghn455vvq1crnv37r42c1sb44hds-getdns-1.3.0
/nix/store/0pqmghn455vvq1crnv37r42c1sb44hds-getdns-1.3.0

Success on aarch64-linux (full log)
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0
shrinking /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0/bin/getdns_query
shrinking /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0/lib/libgetdns.so.6.3.0
gzipping man pages under /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0/share/man/
strip is /nix/store/xmpjypwjmp2qi1chs5kr0hacnh161ls4-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0/lib  /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0/bin
patching script interpreter paths in /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0
checking for references to /build in /nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0...
/nix/store/cc06057ic7ak8q6ja741pqa3ckgsa9md-getdns-1.3.0


removed old code which stopped ajax requests being cached

If you set X-requested-with, and used cache control the value you set got overrided by this code.

@willmorgan I've actioned 2. All OK now?

This is a new API introduced (in a BC way) so it should be in branch, not 3.1 (as it's not a patch).
@willmorgan I suggest this is reverted and then merged into 3

It's more of a bug fix IMHO.

If it's a bug, there wouldn't need to be a new API introduced. this is a new feature to change default behaviour (which is that AJAX can never be cached). It's clear that the code works as intended.
Objectively this was originally a request to change default behaviour (which we probably all agree with) but not a fix for something that is broken.

as @kinglozzer correctly pointed out on IRC, non-cached AJAX isn't going to break anything.
Also, if we do agree that ajax requests shouldn't be treated any differently for caching purposes, we should add this setting for 3.2 and then deprecate it for 4 so that they are cached by default.


ServerCertificate Connection String Parameter Not Establishing Trust in Linux (Tested: RHEL 9, Amazon Linux)

Describe the bug
We're encountering an issue when trying to use ServerCertificate https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlclient.sqlconnectionstringbuilder.servercertificate?view=sqlclient-dotnet-standard-5.1
When trying to establish trust with this parameter in Linux, we get an SSL handshake error (seems to reside in the validation callback).
Exception and stack trace details:
{
  "errorType": "SqlException",
  "errorMessage": "A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)",
  "stackTrace": [
    "at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)",
    "at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)",
    "at Microsoft.Data.SqlClient.TdsParser.EnableSsl(UInt32 info, SqlConnectionEncryptOption encrypt, Boolean integratedSecurity, String serverCertificateFilename)",
    "at Microsoft.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(SqlConnectionEncryptOption encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable, Boolean& fedAuthRequired, Boolean tlsFirst, String serverCert)",
    "at Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnectionString connectionOptions, Boolean withFailover)",
    "at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)",
    "at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)",
    "at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)",
    "at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool)",
    "at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)",
    "at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)",
    "at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)",
    "at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)",
    "at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)",
    "at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)",
    "at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)",
    "at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)",
    "at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)",
    "at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)",
    "at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)",
    "at Microsoft.Data.SqlClient.SqlConnection.Open()",
    .....
  ],
  "cause": {
    "errorType": "AuthenticationException",
    "errorMessage": "The remote certificate was rejected by the provided RemoteCertificateValidationCallback.",
    "stackTrace": [
      "at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception)",
      "at System.Net.Security.SslStream.CompleteHandshake(SslAuthenticationOptions sslAuthenticationOptions)",
      "at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)",
      "at System.Net.Security.SslStream.AuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions)",
      "at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)",
      "at Microsoft.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options)"
    ]
  }
}

To reproduce

Use any certificate to encrypt your SQL server instance. This guide works fine: https://learn.microsoft.com/en-US/sql/database-engine/configure-windows/configure-sql-server-encryption?view=sql-server-ver16
Establish a connection to your database via SqlConnection (C# example code below). The important bits in the connection string are TrustServerCertificate=false, Encrypt=True, ServerCertificate=\your\linux\path\cert.cer.

static void Main(string[] args)
{
      public const string ConnectionString = "Data Source={...};Initial Catalog={...};Integrated Security=false;User ID={...};Password={...};Encrypt=True;TrustServerCertificate=false;ServerCertificate={your linux certificate path};";
    using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
    {
        connection.Open();
    }
}

Expected behavior
Connection should establish with certificate trust.
Further technical details
Microsoft.Data.SqlClient version: 5.1.1
.NET target: .NET 6
SQL Server version: SQL Server 2019
Operating systems:

SQL Server: Windows Server 2019
Clients: Windows 10 (ServerCertificate works here), RHEL 9 (reproduced issue), Amazon Linux (reproduced issue), AWS .NET 6 lambda function (reproduced issue)

Additional Context

This is not an issue in Windows - ServerCertificate works perfectly.
Installing to the Linux trust store as described here (https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-encrypted-connections?view=sql-server-ver16) also worked, after some additional tinkering.

We're trying to establish trust in an AWS lambda function, so the Linux trust store unfortunately will not work for us in this case (there is no ability to install certificates in AWS lambda functions).

Thank you for providing the instruction with the issue. We'll look into it.

Would it not make more sense to validate the hostname in cert, rather than comparing a binary file? In fact, validating hostname is likely more usable, since this prevents the overhead of copying over the cert binaries to the client.

Would it not make more sense to validate the hostname in cert, rather than comparing a binary file? In fact, validating hostname is likely more usable, since this prevents the overhead of copying over the cert binaries to the client.

If the certificate was able to pass the trust chain, yes. But in this scenario, they can't add certificates within AWS lambda functions. ServerCertificate was meant as a better option than trusting all server certificates (TrustServerCertificate=true).

Closing as PR #2487 has been merged.


Example by $ref returned as the content of the "value" key of a wrapper json object

The prism tool returns $ref example's content as {"value": [example content]}.
To Reproduce

Given this OpenAPI document named my-spec.yaml
openapi: 3.0.3 info: title: My API version: 2.0.0 description: Some description paths: /my/path:  get:    responses:      '200':        content:          application/json:            example:              $ref: '#/components/examples/MyResponse'            schema:              $ref: '#/components/schemas/MyResponse' components: schemas:  MyResponse:    type: array    items:      $ref: '#/components/schemas/MyItem'  MyItem:    type: object    properties:      id:        description: Reference to the id        type: number      name:        description: The name        type: number examples:  MyResponse:    value:      - id: 1        name: John      - id: 2        name: Jack
Run this CLI command prism mock -h <IP_ADDRESS> -p 4010 my-spec.yaml
This error log is printed:  [VALIDATOR] ✖  error     Violation: response.body should be array. Wrong response, wrapped in {"value": [example content]}.

Expected behavior
Expected response:
[{"id":1,"name":"John"},{"id":2,"name":"Jack"}]
Actual response:
{"value":[{"id":1,"name":"John"},{"id":2,"name":"Jack"}]}
An example in an OpenAPI yaml file is referred to by a $ref. The example's content, under #/components/examples/MyResponse/value, is returned as {"value": } from prism. Defining an example under components is allowed, as shown here, in the "Reusing Examples" paragraph.
Additional context
Using 4.1.2, installed through npm install -g @stoplight/prism-cli
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (remove any that are not applicable):

Library version: 4.1.2
OS: MacOS Catalina 10.15.7
Browser: Chrome 87
Platform: Desktop

Here's the formatted spec that was provided for reproduction of the issue:
openapi: 3.0.3
info:
  title: My API
  version: 2.0.0
  description: Some description
paths:
  /my/path:
    get:
      responses:
        '200':
          content:
            application/json:
              example:
                $ref: '#/components/examples/MyResponse'
          schema:
            $ref: '#/components/schemas/MyResponse'
components:
  schemas:
    MyResponse:
      type: array
      items:
        $ref: '#/components/schemas/MyItem'
    MyItem:
      type: object
      properties:
        id:
          description: Reference to the id
          type: number
        name:
          description: The name
          type: number
  examples:
    MyResponse:
      value:
        - id: 1
          name: John
        - id: 2
          name: Jack

Here's the formatted spec that was provided for reproduction of the issue:
openapi: 3.0.3
info:
  title: My API
  version: 2.0.0
  description: Some description
paths:
  /my/path:
    get:
      responses:
        '200':
          content:
            application/json:
              example:
                $ref: '#/components/examples/MyResponse'
          schema:
            $ref: '#/components/schemas/MyResponse'
components:
  schemas:
    MyResponse:
      type: array
      items:
        $ref: '#/components/schemas/MyItem'
    MyItem:
      type: object
      properties:
        id:
          description: Reference to the id
          type: number
        name:
          description: The name
          type: number
  examples:
    MyResponse:
      value:
        - id: 1
          name: John
        - id: 2
          name: Jack

Hey @MarinKacaj,
we have just concluded an investigation on this matter; Prism is behaving correctly in this case.
According to the media object specification, the example is typed as any and its content gets dumped in the response.
When Prism is loading your document, the OpenAPI Specific References get resolved according to the specification rules; all the other references (which is your case) simply gets resolved and its content dumped in the relative section.
Essentially, this means that the final example is:
content:
  application/json:
    example:
      value:
        - id: 1
            name: John
        - id: 2
            name: Jack

Which is the response you're getting. On the other hand, the example resolution is different for the examples keyword; so this document behaves in the way you're expecting:
openapi: 3.0.3
info:
  title: My API
  version: 2.0.0
  description: Some description
paths:
  /my/path:
    get:
      responses:
        '200':
          content:
            application/json:
              examples:
                - $ref: '#/components/examples/MyResponse'
          schema:
            $ref: '#/components/schemas/MyResponse'
components:
  schemas:
    MyResponse:
      type: array
      items:
        $ref: '#/components/schemas/MyItem'
    MyItem:
      type: object
      properties:
        id:
          description: Reference to the id
          type: number
        name:
          description: The name
          type: number
  examples:
    MyResponse:
      value:
        - id: 1
          name: John
        - id: 2
          name: Jack

Cheers!

Hey @MarinKacaj,
we have just concluded an investigation on this matter; Prism is behaving correctly in this case.
According to the media object specification, the example is typed as any and its content gets dumped in the response.
When Prism is loading your document, the OpenAPI Specific References get resolved according to the specification rules; all the other references (which is your case) simply gets resolved and its content dumped in the relative section.
Essentially, this means that the final example is:
content:
  application/json:
    example:
      value:
        - id: 1
            name: John
        - id: 2
            name: Jack

Which is the response you're getting. On the other hand, the example resolution is different for the examples keyword; so this document behaves in the way you're expecting:
openapi: 3.0.3
info:
  title: My API
  version: 2.0.0
  description: Some description
paths:
  /my/path:
    get:
      responses:
        '200':
          content:
            application/json:
              examples:
                - $ref: '#/components/examples/MyResponse'
          schema:
            $ref: '#/components/schemas/MyResponse'
components:
  schemas:
    MyResponse:
      type: array
      items:
        $ref: '#/components/schemas/MyItem'
    MyItem:
      type: object
      properties:
        id:
          description: Reference to the id
          type: number
        name:
          description: The name
          type: number
  examples:
    MyResponse:
      value:
        - id: 1
          name: John
        - id: 2
          name: Jack

Cheers!


Appstudio update test-component-pac-tztx

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-tztx-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
1 minute
init

✅ Succeeded
25 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
9 seconds
sast-snyk-check

✅ Succeeded
9 seconds
deprecated-base-image-check

✅ Succeeded
14 seconds
clair-scan

✅ Succeeded
10 seconds
sbom-json-check

✅ Succeeded
9 seconds
inspect-image

✅ Succeeded
39 seconds
clamav-scan

✅ Succeeded
6 seconds
show-summary

✅ Succeeded
6 seconds
show-sbom

Pipelines as Code CI/test-component-pac-tztx-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
15 seconds
clone-repository

✅ Succeeded
20 seconds
sast-snyk-check

✅ Succeeded
1 minute
build-container

✅ Succeeded
43 seconds
deprecated-base-image-check

✅ Succeeded
8 seconds
clair-scan

✅ Succeeded
33 seconds
clamav-scan

✅ Succeeded
7 seconds
sbom-json-check

✅ Succeeded
22 seconds
inspect-image

✅ Succeeded
6 seconds
show-summary

✅ Succeeded
6 seconds
show-sbom


Add sort select menu to search results

Changes in this PR:
Co-Authored-By: @matt-blair
Users have a need to view the "end" of a set of search results. If the set of results is very large, this may be many pages away and we have experienced performance issues with Marklogic when rendering very large sets of results.
If the user wishes to search by date and see the "end" of the results, they can now choose to flip the search results from date descending (newest first) to date ascending (oldest first). This is achieved via a form and a GET request.
We have assumed that if the user is ordering by relevance, they will not wish to see the "least relevant" first.
Trello card / Rollbar error (etc)
https://trello.com/c/bZ9NkZ7i
Screenshots of UI changes:
After

[ ] Requires env variable(s) to be updated

Codecov Report

Merging #350 (1d53810) into main (30ec8e1) will decrease coverage by 0.58%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #350      +/-   ##
==========================================
- Coverage   74.26%   73.67%   -0.59%
==========================================
  Files          12       12
  Lines         509      509
  Branches       50       50
==========================================
- Hits          378      375       -3
- Misses        123      126       +3
  Partials        8        8

Impacted Files
Coverage Δ

judgments/templatetags/query_filters.py
75.00% <0.00%> (-25.00%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Hi @lozette. I've just pulled this and checked it locally and it works well. Files changed all look ok from a frontend perspective.

checked out and tested, all LGTM! 👍


Updated dependencies and code

Hello Andrea
I've updated the dependencies to latest ( till date ) , Also removed some deprecated APIs and changed code accordingly , There are only some minor changes , So i suggest you to take a look and merge code !
Thank You !

@hiteshgarg123 Thanks a lot of contributing, it's great that you found the time to do this.
LGTM!


Working copy of Maester.psd1 not updating version with each release

It looks like the build and publish process is updating the version number for each release package, but the working copy of the module manifest still has the version number as '0.1.0'.
https://github.com/maester365/maester/blob/ac7d470f905800ab86152bd3e7ba00972e523ecc/powershell/Maester.psd1#L15
This causes unexpected results when testing the module locally and it calls Get-IsNewMaesterVersionAvailable.ps1.
Can the build be updated to set the new version number for this file in the repository like it does for the manifest in the publish workflow?

publish-module.yaml: Set module version
minor-version-update.ps1

It becomes messy when we update the files during a build, which then triggers a PR review to merge and then triggers yet another build :)
Since it's for local dev I just ignore that message about the version diff.

Ah, let's avoid that! Haha.


fix(rollback): helm rollback err tips

What this PR does / why we need it:
fix https://github.com/helm/helm/issues/12288
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Thanks, that's much better. Could you add tests?
https://github.com/helm/helm/blob/428c5d52b7efc92a1caa71cfbbefa13a5e7dbbc8/cmd/helm/rollback_test.go#L26

Thanks, that's much better. Could you add tests?
https://github.com/helm/helm/blob/428c5d52b7efc92a1caa71cfbbefa13a5e7dbbc8/cmd/helm/rollback_test.go#L26

I have added unit tests.


Reject promises

Promises should always be rejected with instances of Error. Doing this will propagate the stack traces correctly when failures occur.

Looks good- just fix failing tests...

Changes look good.  As soon as tests passing :shipit:


feat(filename): add filename_map option

This PR adds a possibility to further apply any transform to the filename. I find handy especially in temporary buffers (from e.g. codecompanion, git diff, oil...)

Warning: This pull request is touching the following templated files:

doc/lualine.txt - lualine.txt is generated from README.md. Make changes there instead.

Should be fixed now

Why not just use already existing fmt option ? It allows you to perform arbitrary transformation in any component.
https://github.com/nvim-lualine/lualine.nvim?tab=readme-ov-file#general-component-options

Yes, you are right. Should have noticed that 😅


Alter mssql stored procedure.

A big part of working in mssql server is altering/creating stored procedures.
Something like right-clicking a stored procedure and selecting "alter" that would bring the script up in a new tab with "alter procedure [name] begin" at the top and and " end" att the bottom would be a great feature.

Yes.
This feature already supported for MySQL, PostgreSQL, Oracle, etc.
Stored procedures edit will be added in #810

Not sure how this was implemented.. but I see now that you can open procedure properties, then do any edit in the "source" tab, then ctrl+s, this brings up a preview window where you can click on "Open Editor".
This is 3 steps more than expected.
Expected behaviour would be to be able to directly from navigator to the editor.
This is something you do around 100 times a day as a mssql developer.. having those extra 3 steps is a bit of a pain.


Too Slow: Please provide Updates-Via shortcut to secure web socket address

In https://solid.github.io/notifications/websocket-subscription-2021
and https://solid.github.io/notifications/protocol
in order to watch (subscribe for notification of changes to) some resource, one has to go though many more round trips than are really necessary to set up the web socket.
Yes it is useful to have a generic notification architecture, and yes it useful to have pod-wide metadata, but going through that all to watch a given resource is too bad for performance.
Why not give the client a short cut to the end of the maze?  Imagine that the client had done a subscription, and give the WSS secure address in the headers on the first GET.

We can do performance tests with the CSS team to see what the impact is.

Performance tests aside, I think I have gradually come to appreciate that there might be request-response pairs (ping-pongs for short) that under some assumptions aren't necessary.
The proposed protocol requires a discovery ping-pong, and then authorization ping-pongs. These might also be towards different servers, so it doesn't necessary help to keep connections open either. Though I have been an advocate for using a generic storage description to mitigate header bloat (which I see as problematic for IoT use cases, and because I think caching could help ensure that you wouldn't need to get the storage description all the time), on balance if we can have less ping-pongs in the overall protocol, then it is certainly worth using a header for it, like the current Updates-Via.
Then, the next assumption I would make is that a client that is authorized to access notifications of a resource, is also authorized to access to the resource itself. That could change at some point, but for now, it seems like a fair assumption that the access controls on the resource and its corresponding notifications are the same. Thus, the ping-pongs to authorize could be made superfluous, when accessing the resource, certainly the server could supply the token(s) required to access the notifications too?
With these two considerations, surely, the current Updates-Via could be extended so that it isn't necessary to access a separate discovery mechanism and also not necessary to check authorization separately?

We discussed this issue today during the call. @acoburn mentioned scalability issues when using Websockets this way, as well as possible problems with aggressively issuing Capability URls for all requests.
From my side, I could investigate how this can be done with StreamingHTTPSubscription2021 which doesn't rely on Capability URLs and uses the same AuthN/AuthZ as any other HTTP request. If we want to have a such special case, taking advantage of streaming HTTP responses seems to me the most straight forward approach.

Thus, the ping-pongs to authorize could be made superfluous, when accessing the resource, certainly the server could supply the token(s) required to access the notifications too.

@kjetilk what advantages do you see in defining a flow with some custom token, compared to using Capability URLs?

On torsdag 29. september 2022 23:48:42 CEST elf Pavlik wrote:

@kjetilk what advantages do you see in defining a flow with some custom
token, compared to using Capability
URLs?

I think Section 4 in that spec describes it pretty well. I'm particularly
concerned that in this case, the URI itself is sensitive. Tokens are clearly
things that must be protected, URIs shouldn't be secrets in general. I would
prefer to use capability URIs very sparingly, and when there are no options,
only very short-lived capability URIs.

I don't think it is clearly stated, but to my understanding, we assume that the Capability URL provided as source in the subscription response expires together with the subscription, I think the expiration should also be provided in the subscription response. In the Updates Via, the expiration time would need to be provided as an additional parameter. I still think this might be more straightforward than introducing custom tokens.
Given all the above, I still think that using streaming HTTP, rather than Websockets, saves us from having to use different AutnN/AuthZ mechanisms. Maybe before trying to find a solution to the problem with Auth over Websockets we could clarify why to take the problematic path in the first place?

I understand the desire to go for streaming HTTP, but this is about a minimal change.
With capability URLs, this is an example of an attack that I fear:
Say that Alice sets up a pod with append permissions to a large group of people, which is an expected thing to do. Mallory are amongst the users that gets append access to a resource on Alice's Pod. Now, say that Bob comes along, and Alice has given Bob read permissions on the resource.
Say that Mallory appends a message with "Cute kittens here: https://mallory.example/pics/cute-kitten.jpg" and Bob has a subscription to the resource, gets notified and clicks that link, sees cute kittens and has no reason to suspect that something is wrong. However, Bob's UA may have leaked the capability URL to Mallory since Mallory controls his server, through e.g. the Referer header or some other mechanism as indicated in the Capability URLs WD. Now, Mallory would have escalated his privileges to read notifications, right?
I would prefer to reserve capability URLs for cases where they are single-use.
As for expiration, indeed, a subscription is a commitment into the future, so it makes sense to set expiry and have clients redo auth* now and then.

@kjetilk I created a dedicated issue to discuss the scenario you brough up #115

With the impending release of the revised spec, I believe we can re-introduce updates-via like headers. I propose that we allow the resource to advertise two headers, for any one "notification channel" and/or for any one "subscription resource", both chosen from the respective lists advertized in the discovery resource. The header values can simply be formatted as a serialized version of a "notification channel" and "subscription resource" data model.
We can debate whether to make this feature optional or mandatory (i.e. in cases where a notification service exists on a resource). Other than this, I do not see any other impediments in implementing this feature.

If we were to define a header, it needs Structured Field Values of HTTP https://www.rfc-editor.org/rfc/rfc8941.html
Link relation, although verbose may be simpler:
Link: <wss://websocket.example/guinan/profile?auth=foobar>; rel="http://www.w3.org/ns/solid/notifications#receiveFrom"
Link: anchor="wss://websocket.example/guinan/profile?code=foobar"; type="http://www.w3.org/ns/solid/notifications#WebSocketChannel2023"

Link relation, although verbose may be simpler
This is confusing for the client, especially if it could potentially be mixed with other link relations.

Why not just?
HEAD https://example.org/guinan/profile

Update-Channel: id="https://channel.example/guinan/profile"; type="WebSocketChannel2023"; receiveFrom= "wss://websocket.example/guinan/profile; rate="PT1M"

Mirroring Discovery Resource:
"channel": [{
    "id": "https://channel.example/guinan/profile",
    "type": "WebSocketChannel2023",
    "topic": "https://example.org/guinan/profile",
    "receiveFrom": "wss://websocket.example/guinan/profile",
    "rate": "PT1M"
  }]

and similarly for Subscriptions in another header (with potentially two sub-cases: Subscription specific to topic and Subscription specific to pod).

Because that'd be a hack. There is a distinction between HTTP representation metadata and data, and serialising and stuffing the latter into former doesn't make sense in a HEAD. If it boils down to using a single request, GET makes more sense where that information can be available from the representation data. That's technically possible for resources that can have a representation using a concrete RDF syntax, but not for others. That's In addition to some challenges in handling server and client-managed data in the same resource. Even if we were to define a SFV and send it off to IANA, it would be based on properties that we currently use with potential concerns on extending or modifying the field-value expectations that match the models.
The existing Link relation approach is just barely good enough to help the recipient navigate to where they need to. But, to be absolutely clear, in practise it is going to be generally only useful/feasible in cases where ResourceServer and SubscriptionServer [1] - are available from the same-origin or at the very least the interface is controlled by the same software. Besides arbitrary syntactical differences between Updates-Via and the Link relation approach, there is not a whole lot different - they both expose sensitive information in the header.
If we were to go in that direction in the spec, irrespective to the header and field-value that's used, 1) we'll need to highlight the scenario in which it is useful with advisory statements, 2) decide on the requirement level - because that's what it is going to come down to. To demonstrate interop, it needs to be required, all meanwhile knowing that some implementations will
[1] There is indeed a trade-off here at least with respect to speed gains with (a simpler?) implementation conforming to both classes of products vs. decentralised products with potentially different ownership/implementations/policies and so forth.

What are the differences concerning exposure of sensitive information like the channel URL in the response of a HEAD header value vs. in the response of a POST body, if the original request is authenticated/authorized? Is there a CWE or an RFC security consideration making that distinction? Or is this all essentially a matter of being able to split ResourceSerer and SubscriptionServer as separate products implementable by different software?

Providing a capability URL in the response to every GET request will present a serious security problem.
We have over ten years of experience working with OAuth2, which has a similar pattern, where a security token is included in a response header (i.e. the code in the Authorization Code flow). Since the publication of OAuth2 in 2012, nearly every enhancement to OAuth2 has addressed the security vulnerabilities of that code value. We now have PKCE, DPoP, etc, to help secure that value along with the deprecation of insecure flows such as implicit and hybrid that are unable to provide effective protection to that code value.
If we provide this sort of capability URL in every response header, whether via Link Headers or Updates-Via, we will be ignoring all of the security advice from the last 10+ years from OAuth2. This approach simply does not hold water from a security perspective, and it is a non-starter for any server that aims to handle sensitive user information.

Putting aside the fact that OAuth2 is currently implicitly encouraged for use - which may change in the future, and in fact the Notifications Protocol is not tied to a specific authn/z mechanism - and that we definitely want to take advantage of existing advisory, how is a POST body deemed to be secure in contrast to a header in GET/HEAD? Or at least, can we detail the scenarios in which one is less secure than the other? AFAIK, in both cases the channel URL that's deemed to be sensitive (besides the public channel case) is made available when the requester is authorized.

A POST body is safer because it is the response of a particular, dedicated interaction with a server at a particular endpoint, rather than just being present in every response, for every client. One can place more constraints around that endpoint.

Focusing specifically on the observability of the channel URL for authorized requests - certainly not every response for every client -  I don't see glaring differences between representation metadata and data. I acknowledge that the interaction flow to obtain the channel URL may be different between the requests as well as separate or additional constraints that can be placed on topic resource and subscription resource, but that doesn't seem pertinent.

My concern is related to response headers on Solid Resources of the type described in https://github.com/solid/notifications/issues/110#issuecomment-1402067536, where a capability URL is returned.
HEAD https://example.org/guinan/profile

Link: <wss://websocket.example/guinan/profile?auth=foobar>; rel="http://www.w3.org/ns/solid/notifications#receiveFrom"

If a (Solid) Resource Server provides that on every response, then every client that interacts with Solid will have access to that capability URL. I have no concerns about providing a link to an endpoint where an Agent can negotiate for this capability URL, but providing this on every response is the issue. This really will not stand up to security scrutiny.

Is there a particular reason why that URL needs/expected to be the same for every authorized client? My understanding is that it need not be the same and something like Vary: Authorization can be used to make the distinction per request/representation.

The Vary header specifically takes a header name as value, so it would have to be something else, but yeah, I guess Vary: Updates-Via could be the thing.
However, there is a performance cost to every Vary value too, another thing that reduces the number of cache hits. The system performance can therefore be quite application specific. I have been very uncomfortable about Capability URLs in general and beyond single-use in particular. I have not been so concerned about having a token that is not part of the URL since the assumptions to protect URLs tend to be different from other fields, but if that has also been shown to cause problems given the experience with OAuth2, I think we would be ill-advised to ignore that experience.
That makes me think, would it be possible to detail ways that the ping-pongs can be short-cutted by caching in common situations? Do we have optimization potential there?

Caching is yet another dimension of this that complicates the presence of capability URLs in response headers. If a client caches responses (it should), then capability URLs in these headers makes it very difficult to effectively use these caches, since the capability URL may have expired. POST responses are not cached.

Authorization header is a thing (RFC 7235) but if I'm reading the specs correctly, response with Vary: Authorization won't be cached - assuming that Authorization was in the request.
POST responses can be cached (RFC 7231) but to be clear, the request semantics of POST targeting subscription resource won't be cacheable - 200/Content-Location is not required or a meaningful response (Notifications Protocol).
Irrespective to where the capability URL is observable from, when it expires, client will have to go through the requests (GET/HEAD or POST) again to obtain a new one.
I just want to be clear that the exposure of the capability URL does not appear to be fundamentally different for the two approaches (GET/HEAD vs POST) for authorized request.
I won't pretend to know the inner depths of https://www.rfc-editor.org/rfc/rfc7234#section-3.2 but it seems that exposure of the capability URL is removed or limited when caching is forbidden or not expected.
Enabling clients to cache the topic resource is certainly useful and punting responses that can vary to POST subscription resource response seems good too, but I don't quite yet see if/how/when Vary: Authorization factors into all/some responses.

I feel as though a straw man is being built out of the example I have created and there is much confusion. We need to differentiate between flows for public channels and private+custom channels. That example above is valid only for public channels (as would have been advertised in a Description Resource). In that case, a WebSocket channel will not have a cURL (it is a permanent URL) and is independent of the client! The client is free to cache it.
For the case of private+custom channel, the best we can do is to advertise a subscription service via a header (additionally to a Description Resource). The fact remains that having a cURL for WebSockets in the Topic Resource header will result in a dedicated channel per Topic Resource. Apart from the caching and security issues @acoburn cites, this will, in all probability, also be poor for performance, the moment a client wishes to subscribe to multiple topics. With the subscriptions flow (as we have conceived in the protocol), clients can subscribe to multiple topics in one shot and watch for the changes on all the topics in one channel, making client's life simpler. In the former, clients have to connect to multiple channels and manage all those channels. Not only are there more round trips to first connection in the aggregate, imagine the overhead for the client if the connection drops.
Specific responses:

Because that'd be a hack. ... concrete RDF syntax, but not for others.

I do not follow this completely. Maybe you can explain this part to me in person.

in practise it is going to be generally only useful/feasible in cases where ResourceServer and SubscriptionServer [1] - are available from the same-origin or at the very least the interface is controlled by the same software.

Are you talking about having cURLs in the header here? Otherwise, the situation with the header is equivalent to that of a Description Resource. The Resource Server has to know what to advertise, whether on the header or in the Description Resource.

we'll need to highlight the scenario in which it is useful with advisory statements, 2) decide on the requirement level - because that's what it is going to come down to.

It is useful when client wants a shortcut for the servers' preferred channel and/or subscription. The client is free to look at description resource for more options. Servers can optimize their choice based on demand. 2) It definitely should be optional, as the description resource mechanism is more comprehensive. Furthermore, it can be tacked on without touching the present protocol.

I am fairly certain that one of the key challenges all along has been about sharing protected WebSocket endpoints (or notification channels' receiveFrom using the Notifications Protocol terminology). Put differently, the work wasn't about finding a way to share public endpoints because we already had/have a solution for that.
One of my responsibilities is to facilitate consensus. So, I'm simply asking for clarifications, references, and so forth for assumptions or preferred designs from everyone, even if it is obvious to them. Please bear with me.
Again, I want to first look at security (information exposure), then caching, then both of them together, and perhaps some other dimension if we need to.

If there are any disagreements on the following or clarification is needed, please quote and ask.

Solid Notifications Protocol does not require specific authn/z mechanisms but encourages reusing existing ones, eg., the Solid Protocol. In practise, we know it'll work alongside the Solid Protocol, but most importantly, Solid Notifications Protocol is not intended to be designed for specific authn/z.
Unauthorized requests get a 403, and authorized get a 200.

Example resources from the specs:

Topic resource: https://example.org/guinan/profile
Subscription resource: https://websocket.example/subscription

The following examples (with simplified code) focus on authorized requests (requests include the Authorization header) since unauthorized GET and POST requests to topic, description, and subscription resources will get a 403 with no expectation to reveal any information beyond stating that the request is forbidden.
A.
  HEAD https://example.org/guinan/profile

  204
  Link: <A>; rel="http://www.w3.org/ns/solid/notifications#receiveFrom"

B.
POST https://websocket.example/subscription

200
{
  "receiveFrom": <B>
}

Focus on information exposure:

Can A and B the same URL? If not, why not?
Is either one of those HTTP responses less secure than the other? If so, how?
Must A be the same URL in every response? Why? Same question for B.

Focus on caching:

When A and B are different for each client must the responses to include Vary: Authorization?
When A and B are different for each client and there is no caching, would the response to question 2. be different?

As mentioned earlier, there are design choices here but I want to make sure that we are looking at the claims both in isolation and in context of everything else. If approach A fundamentally raises (more) concerns about caching (because targeting topic resource) than approach B, then we can evaluate it based on that.
If the interaction flow that leads to approach B is claimed to be "too slow", than caching concerns for approach A needs to be acknowledged. And ultimately, whether keeping approach A and giving up on caching topic resource is still preferable over approach B. All things being equal and caching aside, I don't find approach A less secure than B, but perhaps your answers to the questions above (and others) can help me better understand the assumptions or intended designs.

I would add one additional thing about approach B in that topic resource and subscription resource can have different access controls, so, while one may be able to read the topic resource, they may not be able to subscribe for updates. That is potentially possible in approach A but it entails addressing something uncharted - Authorization rule distinguishing access modes between the topic resource and a notification endpoint. I don't want to delve too far into this use case, whether there are actual implementations to point to, or even discussing how separate access controls on topic resource and notification endpoint may relate or one another.

@elf-pavlik noted that StreamingHTTPSubscription2021 would allow the same auth to be used as for normal GET requests.    Though switching from web sockets to streaming HTTP is quite a change, if there  is no way of just passing the same auth with the web socket request itself, and if using a capability URI is therefore needed with web sockets (whether  is is from a header or from a POST), and we really don't like capability URIs,  then is the best design to have a [link] header of some sort pointing to the streaming endpoint? (Why can't Web socket requests carry the normal auth tokens of a get request? Browser Limitation?)

(Why can't Web socket requests carry the normal auth tokens of a get request? Browser Limitation?)

A POST body is safer because it is the response of a particular, dedicated interaction with a server at a particular endpoint, rather than just being present in every response, for every client. One can place more constraints around that endpoint.

:+1:
Possibly comparable explicit intent could be achieved with https://www.w3.org/TR/dx-prof-conneg/.
In the end it is up to the RS to chose which (if any) pre-established notification channels to advertise and which subscription resources/services.

StreamingHTTP has the advantage of using regular HTTP request with Authorize header. Which doesn't require use of Capability URLs. If we talk about speed, I guess it would be the fastest of all options, especially if the Resource Server and Notifications Sender are on the same origin.

I would strongly suggest that we continue working in this issue without blocking release of v0.2 of Notification Protocol. Implementations can already start updating to it and we could aim at resolving this issue for v0.3

The Solid Notifications Protocol includes the following based on the temporary identifier considerations from the W3C Self-Review Questionnaire: Security and Privacy:

What temporary identifiers do the features in this specification create or expose to the web?
The subscription response payload can contain a capability URL to protect the notification channel which is only exposed to authorized Subscription Clients.

For GET/HEAD response header including capability URL, here is one possible response to the same consideration:
The topic resource's HTTP response headers can contain a capability URL to protect the notification channel which is only exposed to authorized Subscription Clients.
I suggest that we also acknowledge and exercise a response to the following considerations, whether in terms of requirements or advisory for all approaches:

If a standard exposes a temporary identifier to the web, the identifier should be short lived and should rotate on some regular duration to mitigate the risk of this identifier being used to track a user over time.

When a user clears state in their user agent, these temporary identifiers should be cleared to prevent re-correlation of state using a temporary identifier.

If features in this spec create or expose temporary identifiers to the web, how are they exposed, when, to what entities, and, how frequently are those temporary identifiers rotated?

StreamingHTTP has the advantage of using regular HTTP request with Authorization header. Which doesn't require use of Capability URLs. If we talk about speed, I expect it would be the fastest of all options, especially if the Resource Server and Notifications Sender are on the same origin.

This is one place I strongly disagree with you @elf-pavlik. Well, actually you are most probably correct in assuming that StreamingHTTP will likely be the fastest, but only for initializing notifications for one topic resource at a time. However, the moment you need to receive notifications on, say, 50 resources (which is the likely scenario with linked data), WebSockets will trounce StreamingHTTP in performance. We don't need benchmarks to demonstrate this! A WebSocket will require one roundtrip to mint the cURL and then receive notifications on all the topic resources; Whereas StreamingHTTP will have to make a subscription request per resource, i.e. 50 roundtrips! Similar consideration applies for modification of channel and resubscription.

Please consider trying my early branch of streaming HTTP notifications for CSS https://github.com/CommunitySolidServer/CommunitySolidServer/pull/1878
Easy way to test it:

GET some public read resource (eg. WebID doc)
pick rel="http://www.w3.org/ns/solid/terms#updatesViaStreamingHTTP2023" from link header
curl that linked endpoint
change the document using a client of your choice

It also does authorization on that notification endpoint but you need to deal with the tokens to try it


Can't update extensible state value?

Problem Description
For some reason, cannot update a value into the extensible state with put from the same hook.  But if I have a value that I want to check and update from a log hook, it doesn't update.
Steps to Reproduce
Start xmonad from .xinitrc with this command
exec xmonad | tee /tmp/output.log

once inside the xmonad environment, open the file in a terminal with and monitor the output
tail -f /tmp/output.log

Configuration File
newtype MonitorTags = MonitorTags [WorkspaceId]
  deriving (Show,Eq)
instance ExtensionClass MonitorTags where
  initialValue = MonitorTags []

customLog :: XConfig a -> XConfig a
customLog x = x {logHook = myOtherLogHook <+> logHook x}

myOtherLogHook = withWindowSet $ \s -> do
  let visibleScreens = W.current s : W.visible s
  let currentTags = map (W.tag . W.workspace) visibleScreens

  v <- XS.get :: X MonitorTags

  io $ do
    print "Extensible State Value: "
    print v

  if v == MonitorTags currentTags
    then
    io $ print "value is the same, not updating"
    else do
    io $ print "Value has changed, updating to " >> print currentTags
    XS.put (MonitorTags currentTags)

To your xmonad's config
main = xmonad $ customLog $ ...

Checklist

[x] I've read CONTRIBUTING.md

I tested my configuration

[X] With xmonad version 0.17.0
[X] With xmonad-contrib commit 0e106ccfbee21c90eec46537bfb4341de648c9f7

It seems to work here, switching from workspace 1 to 4 to 3:
"Extensible State Value: "
MonitorTags []
"Value has changed, updating to "
["1"]
"Extensible State Value: "
MonitorTags ["1"]
"value is the same, not updating"
"Extensible State Value: "
MonitorTags ["1"]
"Value has changed, updating to "
["4"]
"Extensible State Value: "
MonitorTags ["4"]
"Value has changed, updating to "
["3"]
xinit: connection to X server lost

waiting for X server to shut down

The xmonad.hs I used is
import XMonad
import qualified XMonad.StackSet as W
import qualified XMonad.Util.ExtensibleState as XS

newtype MonitorTags = MonitorTags [WorkspaceId]
  deriving (Show,Eq)
instance ExtensionClass MonitorTags where
  initialValue = MonitorTags []

customLog :: XConfig a -> XConfig a
customLog x = x {logHook = myOtherLogHook <+> logHook x}

myOtherLogHook = withWindowSet $ \s -> do
  let visibleScreens = W.current s : W.visible s
  let currentTags = map (W.tag . W.workspace) visibleScreens

  v <- XS.get :: X MonitorTags

  io $ do
    print "Extensible State Value: "
    print v

  if v == MonitorTags currentTags
    then
    io $ print "value is the same, not updating"
    else do
    io $ print "Value has changed, updating to " >> print currentTags
    XS.put (MonitorTags currentTags)

main = xmonad $ customLog def

@Pachin0 any updates?

I was away from home so I couldn't work on this. I am working on a 2 monitor setup and I can assure that for some reason it wasn't updating the value from the XS.put function in the same hook but for some reason binding the update function to a keybind works just fine. Ill try with another datatype and see.
I also have a suspicion that the ewmh current desktop updating part does not work due to a similar problem. Ill make another xmonad config from scratch and test with that.

Are you sure you're not seeing https://wiki.haskell.org/Xmonad/Frequently_asked_questions#Replacing_greedyView_with_view ? I have dual screens and a taskbar which relies on EWMH, and it shows the correct EWMH updates.

Forget it, I did it with a new config and reinstalled the xmonad-contrib and xmonad libraries and it works now. It updates the state.

Okay, closing for now. If you repeat it later and can provide more information you can reopen it.


Fix I2C

RoboRIO and REV Color Sensor V2 are not communicating.
Device Documentation (Addresses on Pg. 17) - http://www.revrobotics.com/content/docs/TMD3782_v2.pdf
Chief Delphi issue thread - https://www.chiefdelphi.com/t/rev-color-sensor-v2-and-roborio-communication/342075
See branch colorsensor for code current to this issue.

Solved. SDA and SCL ports were swapped on RoboRIO so wires on color sensor were swapped.
Fix and general instructions now exist on documentation.


any way to use vm-dom for "vanilla" JSX?

There is a package developed by the same people as violentmonkey for transforming JSX into "vanilla" elements but I am not sure if there is a way to use it along with vite and this plugin, but it may be something worth investigating.
https://github.com/violentmonkey/vm-dom

This question has nothing to do with vite-plugin-monkey
https://vitejs.dev/guide/features.html#jsx
https://github.com/lisonge/vite-plugin-monkey/blob/73d6db261ec12f3e8aac595aed342d72ca3c2a9b/playground/vm-dom/vite.config.ts#L1-L27
https://github.com/lisonge/vite-plugin-monkey/blob/73d6db261ec12f3e8aac595aed342d72ca3c2a9b/playground/vm-dom/src/main.tsx#L1-L10
https://github.com/lisonge/vite-plugin-monkey/blob/73d6db261ec12f3e8aac595aed342d72ca3c2a9b/playground/vm-dom/dist/vm-dom.user.js#L1-L40


Create Contributing.md

I have created the contributing.md file with good structure and some sections.
I have done these things in the Contributing.md file :-

Created a good overall structure.
Added a project structure section
Added the first pull request section
Added alternate way of contributing through GitHub desktop section
Added help and support section
Added good coding practices section
Added pull request process section
Added issue report process section
Added the thank you section

fixes:[#44 ]

I have created the Contributing.md file. Please check it once.

fine 👍🏻

Thank you 😊


Bug: Configuration filter button doesn't work in Firefox

Steps To Reproduce:
Login to the test environment
Navigate to the Emissions module
Type Comanche in the filter text box
Clicking the filter button is unsuccessful.

Confirm if this is still a bug on dev and stg.

Filtering for facilities in the Emissions module appears to work properly on test and dev.


Unable to compile due to simd

Describe the bug
I encountered error
error[E0308]: mismatched types
   --> /Users/odysa/.cargo/git/checkouts/simd-json-0dd937541df12053/fe89a0d/src/lib.rs:228:86
    |
228 | fn please_compile_with_a_simd_compatible_cpu_setting_read_the_simdjsonrs_readme() -> ! {}
    |    ----------------------------------------------------------------------------      ^ expected `!`, found `()`
    |    |
    |    implicitly returns `()` as its body has no tail or `return` expression
    |
    = note:   expected type `!`
            found unit type `()`

My system info
➜  ~ neofetch
                    'c<EMAIL_ADDRESS>                 ,xNMM.          ------------------------------
               .OMMMMo           OS: macOS 12.4 21F79 x86_64
               OMMM0,            Host: MacBookPro16,2
     .;loddo:' loolloddol;.      Kernel: 21.5.0
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 2 days, 6 hours, 11 mins
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 67 (brew)
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: zsh 5.8.1
;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 3440x1440, 1440x900
:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Quartz Compositor
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    WM Theme: Blue (Dark)
 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   Terminal: iTerm2
  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   Terminal Font: Monaco 13
    kMMMMMMMMMMMMMMMMMMMMMMd     CPU: Intel i5-1038NG7 (8) @ 2.00GHz
     ;KMMMMMMMWXXWMMMMMMMk.      GPU: Intel Iris Plus Graphics
       .cooc,.    .,coo:.        Memory: 10061MiB / 16384MiB

I think my CPU i5-1038NG7 (8) @ 2.00GHz supports SIMD.
To Reproduce
No response
Expected behavior
No response
Additional context
No response

Could you confirm if your laptop is able to use https://github.com/simd-lite/simd-json independently, e.g. run its example?

I can compile it after adding
    "-C",
    "target-cpu=native"

to ./cargo/config.toml
like https://github.com/simd-lite/simd-json/blob/e611d9db0116885f66a1683ee1d6f5537b2cd83a/.cargo/config#L1-L2


feat: 🎸 Add initial support for new Middleware V2

Adds support for middlewareV2 on the heartbeat, latestBlock and
investments queries.
✅ Closes: MSDK-721
The thought process for this is that we want to be able to use the old and new middleware at the same time to verify the accuracy of the new middleware in the real world, to achieve this:

All v2 query results will be mapped onto the v1 result "shape".
The sdk will try to use the v1 middleware if only it is available.
The sdk will try to use both middlewares if both are available and check that they return the same thing, if a difference is detected, it will be reported via the middlewareDiffLogger (which can be connected to sentry or other error tracking tools) and default to the response of the v1 middleware.
The sdk will use the v2 middleware if only it is available.

I'm unsure if this PR should be merged or be left as a feature branch until all queries are migrated what do you think? For now I'll leave it as a draft

We'll close this PR until we define how Middleware V2 will be.


Add runner that uses PAT to generate issues to the repositories

@ryjones need help for couple of items. I shall reach out to you on discord to get those. If this gets published as an action, it can be enabled for quarterly report reminders to each project.
Sample: https://github.com/arsulegai/github-issue-schedule/issues/2


Update RDF4J to 5.x

We should follow the same methodology as with Apache Jena: #78
Basically, have Jelly 1.0.0 ship with RDF4J 4 and then move to RDF4J 5 in 1.1.0.
See the pull request: #112
And the release notes: https://rdf4j.org/news/2024/06/21/rdf4j-5.0.0-released/

Resolved in #130


App crashes when I put the overscan values and click on ok botton.

Actual behaviour
When I open secondscreen app and click on add option . After that I put profile name and click on ok botton.then I click on overscan settings option. After that I enable overscan option . Then I put the values in  any blank and click on ok botton app suddenly crashes.
How to reproduce

Download the secondscreen app from F-driod.
Install this app.
Open the secondscreen app.
Click on add option.
Put profile name and Click on ok botton.
After that select overscan settings and enable overscan.
Fill any blank and Click on ok botton app suddenly crashes.
Browser: secondscreen.
Version: 2.7
Operating system: 7.1.2

Recording of the bug
https://youtu.be/ZM8nh-b4SUc

Thanks for your report.  I was able to reproduce the issue and commit a fix that will go out in the next release.


update meta for 1.0.1

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Option to pause scroll on hover only when a key is held down

What should be added?
I'd like to have an option to Pause Autoscroll on Hover (which is implemented already), but only when the configured "Pause while holding a key"-Key is held down at the same time.
I think that could be implemented easily through a new checkbox in the "Chat" configuration section, called "Pause on mouse hover only when the configured key is pressed" or similar.
Why should it be added?
Currently it is only possible to either pause chat while holding a configured key (which only works if Chatterino is focused), or when the mouse is hovering the chat.
However, I often find myself doing sth else on another window (on another monitor), so that the Chatterino window is out of focus but still visible. Then, when I need to click a moderation button quickly, I can't use the configured hold button (which already caused several misclicks).
Pause on Mouse-Hover would work, but when I just need to focus Chatterino without clicking a button, the easiest way is to click in the middle of the chat window - which causes an unwanted (and occasionally frustrating) pause.
My proposed solution would solve that because then one could focus Chatterino without the unwanted pause, but one could also pause chat when trying to click a Mod Button by simply holding the configured key and hovering. I think that would be more intuitive.

See when I'm doing something similar to your scenario and I need to move over and pause chat, generally I move my mouse over there and use the scroll wheel.
Usually does the job

See when I'm doing something similar to your scenario and I need to move over and pause chat, generally I move my mouse over there and use the scroll wheel.
Usually does the job