open device error when running microros agent ping_pong tutorial usb serial

Hi,
Following the tutorial (verbatim) I've flashed my Olimex-STM32-407 board and built the micro-ros agent.
during building the agent for the first time I gave me "error" message output, and after some searching I guess this "error" can be ignored? Anyway, the second time the building did not give errors.
bdb@ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_setup build_agent.sh
Building micro-ROS Agent
Starting >>> microcdr
[0.181s] WARNING:colcon.colcon_core.prefix_path.colcon:The path '/home/bdb/projects/microros_ws/install' in the environment variable COLCON_PREFIX_PATH doesn't exist
[0.182s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/bdb/projects/microros_ws/install/micro_ros_setup' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.182s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/bdb/projects/microros_ws/install/micro_ros_setup' in the environment variable CMAKE_PREFIX_PATH doesn't exist
Starting >>> microxrcedds_agent
Finished <<< microcdr [0.96s]
Starting >>> rosidl_typesupport_microxrcedds_c
Finished <<< rosidl_typesupport_microxrcedds_c [0.67s]
Starting >>> micro_ros_msgs
Finished <<< micro_ros_msgs [4.75s]
[Processing: microxrcedds_agent]
[Processing: microxrcedds_agent]
[Processing: microxrcedds_agent]
[Processing: microxrcedds_agent]
[Processing: microxrcedds_agent]
--- stderr: microxrcedds_agent
Cloning into 'spdlog'...
Cloning into 'sanitizers'...
Cloning into 'fastdds'...
Already on 'master'
CMake Warning (dev) at cmake/FindASan.cmake:25 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'SANITIZE_ADDRESS'.
Call Stack (most recent call first):
  cmake/FindSanitizers.cmake:37 (find_package)
  tests/CMakeLists.txt:52 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

Switched to a new branch '2.0.x'
Submodule 'thirdparty/android-ifaddrs' (https://github.com/michalsrb/android-ifaddrs.git) registered for path 'thirdparty/android-ifaddrs'
Submodule 'thirdparty/asio' (https://github.com/chriskohlhoff/asio.git) registered for path 'thirdparty/asio'
Submodule 'thirdparty/fastcdr' (https://github.com/eProsima/Fast-CDR.git) registered for path 'thirdparty/fastcdr'
Submodule 'thirdparty/tinyxml2' (https://github.com/leethomason/tinyxml2.git) registered for path 'thirdparty/tinyxml2'
Cloning into '/home/bdb/projects/microcos_ws/build/microxrcedds_agent/fastdds/src/fastdds/thirdparty/android-ifaddrs'...
Cloning into '/home/bdb/projects/microcos_ws/build/microxrcedds_agent/fastdds/src/fastdds/thirdparty/asio'...
Note: switching to 'v1.4.2'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 1549ff12 Replace STRING(PREPEND ..) in CMakeLists.txt to support older CMake versions
Cloning into '/home/bdb/projects/microcos_ws/build/microxrcedds_agent/fastdds/src/fastdds/thirdparty/fastcdr'...
Cloning into '/home/bdb/projects/microcos_ws/build/microxrcedds_agent/fastdds/src/fastdds/thirdparty/tinyxml2'...
---
Finished <<< microxrcedds_agent [2min 37s]
Starting >>> micro_ros_agent
--- stderr: micro_ros_agent
/usr/bin/ld: warning: libfastrtps.so.2, needed by /opt/ros/foxy/lib/librmw_fastrtps_shared_cpp.so, may conflict with libfastrtps.so.2.0.2
---
Finished <<< micro_ros_agent [4.29s]

Summary: 5 packages finished [2min 41s]
  2 packages had stderr output: micro_ros_agent microxrcedds_agent

bdb@ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_setup build_agent.sh
Building micro-ROS Agent
Starting >>> microcdr
[0.183s] WARNING:colcon.colcon_core.prefix_path.colcon:The path '/home/bdb/projects/microros_ws/install' in the environment variable COLCON_PREFIX_PATH doesn't exist
[0.183s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/bdb/projects/microros_ws/install/micro_ros_setup' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.183s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/bdb/projects/microros_ws/install/micro_ros_setup' in the environment variable CMAKE_PREFIX_PATH doesn't exist
Starting >>> microxrcedds_agent
Finished <<< microcdr [0.12s]
Starting >>> rosidl_typesupport_microxrcedds_c
Finished <<< microxrcedds_agent [0.23s]
Finished <<< rosidl_typesupport_microxrcedds_c [0.18s]
Starting >>> micro_ros_msgs
Finished <<< micro_ros_msgs [0.36s]
Starting >>> micro_ros_agent
Finished <<< micro_ros_agent [0.14s]

Summary: 5 packages finished [0.91s]

When starting the agent I get a device opening error, suggesting I run as superuser.
bdb@ThinkPad-P51:~/projects/microcos_ws$ rource install/local_setup.bash
bdb@ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-ZEPHYR_Zephyr_micro-ROS_20363942394E500A-if00
[1611223526.155757] error    | TermiosAgentLinux.cpp | init                     | open device error      | device: /dev/serial/by-id/usb-ZEPHYR_Zephyr_micro-ROS_20363942394E500A-if00, errno: 13. Please re-run with superuser privileges.
Error while starting serial agent!

My setup:

Ubuntu 20.04
ROS2 Foxy, running from packages

Any help would be appreciated,
Best, Bas

Hello @luminize, regarding the build error maybe @jamoralp can give us some support.
Regarding the runtime error, it seems that you don't have permission for read/write to the serial port. Check this

Hello @luminize, regarding the build error maybe @jamoralp can give us some support.
Regarding the runtime error, it seems that you don't have permission for read/write to the serial port. Check this

Thanks @pablogs9 your link to adding myself to the dialout group solved this.
bdb@bdb-ThinkPad-P51:~$ groups bdb
bdb : bdb adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare
bdb@bdb-ThinkPad-P51:~$ cd projects/microcos_ws/
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ source /opt/ros/foxy/setup.bash
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ source install/local_setup.bash
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-
/dev/serial/by-id/usb-STMicroelectronics_STM32_STLink_0669FF323338424E43162338-if02
/dev/serial/by-id/usb-ZEPHYR_Zephyr_micro-ROS_20363942394E500A-if00
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-ZEPHYR_Zephyr_micro-ROS_20363942394E500A-if00
[1611225798.867831] info     | TermiosAgentLinux.cpp | init                     | running...             | fd: 3
[1611225799.959007] info     | Root.cpp           | create_client            | create                 | client_key: 0x14790D24, session_id: 0x81
[1611225799.959045] info     | SessionManager.hpp | establish_session        | session established    | client_key: 0x343477540, address: 1

and now I can find the topics on the olimex board
bdb@bdb-ThinkPad-P51:~$ source /opt/ros/foxy/setup.bash
bdb@bdb-ThinkPad-P51:~$ ros2 topic list
/microROS/ping
/microROS/pong
/parameter_events
/rosout

Would you like me to close this issue? or keep it open for the build warning?

Thanks @pablogs9 your link to adding myself to the dialout group solved this.
bdb@bdb-ThinkPad-P51:~$ groups bdb
bdb : bdb adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare
bdb@bdb-ThinkPad-P51:~$ cd projects/microcos_ws/
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ source /opt/ros/foxy/setup.bash
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ source install/local_setup.bash
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-
/dev/serial/by-id/usb-STMicroelectronics_STM32_STLink_0669FF323338424E43162338-if02
/dev/serial/by-id/usb-ZEPHYR_Zephyr_micro-ROS_20363942394E500A-if00
bdb@bdb-ThinkPad-P51:~/projects/microcos_ws$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-ZEPHYR_Zephyr_micro-ROS_20363942394E500A-if00
[1611225798.867831] info     | TermiosAgentLinux.cpp | init                     | running...             | fd: 3
[1611225799.959007] info     | Root.cpp           | create_client            | create                 | client_key: 0x14790D24, session_id: 0x81
[1611225799.959045] info     | SessionManager.hpp | establish_session        | session established    | client_key: 0x343477540, address: 1

and now I can find the topics on the olimex board
bdb@bdb-ThinkPad-P51:~$ source /opt/ros/foxy/setup.bash
bdb@bdb-ThinkPad-P51:~$ ros2 topic list
/microROS/ping
/microROS/pong
/parameter_events
/rosout

Would you like me to close this issue? or keep it open for the build warning?

@pablogs9 Thanks for the quick help! Much appreciated.

@pablogs9 Thanks for the quick help! Much appreciated.

A little update regarding this: I found that the CMake CMP0077 warning you are getting is because of the sanitizer tool we are using, though it only appears when using CMake 3.16.3 or greater. I just updated my microros/base:foxy Docker image and I checked indeed that the CMake version has been bumped to that one, so it makes sense that this is being displayed now.
I already uploaded a fix in the Agent repo. Please check it out https://github.com/eProsima/Micro-XRCE-DDS-Agent/pull/207. This patch will also be incorporated into foxy branch, but I would really appreciate if you can test it on your local setup and confirm that the warning is not there anymore before merging the pull request. Thanks!

A little update regarding this: I found that the CMake CMP0077 warning you are getting is because of the sanitizer tool we are using, though it only appears when using CMake 3.16.3 or greater. I just updated my microros/base:foxy Docker image and I checked indeed that the CMake version has been bumped to that one, so it makes sense that this is being displayed now.
I already uploaded a fix in the Agent repo. Please check it out https://github.com/eProsima/Micro-XRCE-DDS-Agent/pull/207. This patch will also be incorporated into foxy branch, but I would really appreciate if you can test it on your local setup and confirm that the warning is not there anymore before merging the pull request. Thanks!

Closing since https://github.com/eProsima/Micro-XRCE-DDS-Agent/pull/207 merged

Closing since https://github.com/eProsima/Micro-XRCE-DDS-Agent/pull/207 merged


Reviews?

Consider how would I implement review scores for each recipe, maybe based on the number of likes


net/bind: DNSBL zeustracker discontinued

DNSBL ZeusTracker abuse.ch is no longer working.
zeustracker was discontinued in July: https://zeustracker.abuse.ch/

I'll remove it when another PR is merged, thank you! :)

This can be closed, already merged


Update subctl-install.html to v0.2.0

For now its fine, I think we need to point latest to the latest official release, and have another tag to point to latest unstable rawhide style

Yeah, we need some handling for that, a redirect or something.


(maint) Fix ctrl::do_until docs

The docs mischaracterized the return value of ctrl::do_until as nil. That function returns the value of the given code block's last iteration

You might need a !no-release-note in commit message to make docs happy.


get dataset ids from operators and provenance infos from dataset providers

 Zitate (im System und Tabelle)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

53 of 131 (40.46%)  changed or added relevant lines in 21 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 78.837%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

operators/src/mock/mock_feature_collection_source.rs
0
1
0.0%

operators/src/mock/mock_point_source.rs
0
1
0.0%

operators/src/mock/mock_raster_source.rs
0
1
0.0%

operators/src/source/csv.rs
0
1
0.0%

services/src/pro/datasets/postgres.rs
0
1
0.0%

operators/src/mock/mock_dataset_data_source.rs
0
2
0.0%

operators/src/source/ogr_source.rs
0
2
0.0%

operators/src/engine/operator.rs
6
9
66.67%

operators/src/processing/point_in_polygon.rs
0
3
0.0%

operators/src/processing/vector_join/mod.rs
0
3
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
18566

Relevant Lines:
23550

💛  - Coveralls


New Crowdin translations

Enjoy!

Closing in favor of #418 per https://github.com/OriginProtocol/origin-devops/issues/16 🎋


switch CLI to using click, handles printing colors

docs for click are good, would recommend skimming over them
https://click.palletsprojects.com/en/7.x/#documentation
everything is backwards-compatible with the previous interface, the only minor changes were to the doctor cmd which can now accept more than one item to run, and the --skip-config-check to skip the config_ok check if the user specifies to
Couldn't find anywhere in the doc/ folder where I had to change, let me know if I missed something
added a test using click.testing.CliRunner (tests the CLI in an isolated environment), though additional tests which aren't testing the CLI itself (parsing arguments or decorator behaviour) can just call the functions themselves, as they no longer accept a argparser.Namespace and instead accept the direct arguments
I also replaced the colorama.init call in core.warnings, as click will make sure colorama is installed on windows if it needs it, and handles initializing it if needed, else it does typical ANSI-styled colors with click.style. This doesnt use termcolor under the hood, it just does it manually (other than colorama on windows, click has no dependencies)
I know previously said that would PR this after writing the query interface, but didn't want to have to worry about making it compatible with argparse and click (and also, didn't feel like writing something in argparse, knowing I would re-write it almost immediately)
Does change the formatting for the CLI a bit (doesnt use epilog, uses the docstrings as descriptions), but the decorators and nesting is pretty readable. Any click.group() functions can then be used as a decorator themslelves, allowing you to nest like:
@click.group():
def main():
	pass

@main.group()
def subgroup():
	pass

# options with '/' are interpreted as on/off flags
@subgroup.command()
@click.option("--verbose/--quiet", default=False, help="increase verbosity...")
def cmd(verbose: bool) -> None:
	"""docs for cmd go here"""
	click.echo("Hi!")

That would create an interface like main.py subgroup cmd, allowing you to add click.options() or click.arguments() along the way. Click supports lots of ways to deal with the complexities of parsing/sharing context between the groups and options, either adding callbacks, invoking one command from another, or adding a shared context between commands. Advanced docs
Also, switched from using print to click.echo since it handles handles possible UnicodeErrors if the terminal is heavily misconfigured, strips ANSI colors if the output is a file. Overhead is tiny so I tend to use it by default so I don't have to worry about those problems in the future
the only major thing I think isn't immediately obvious is in click:

Arguments work similarly to options but are positional. They also only support a subset of the features of options due to their syntactical nature. Click will also not attempt to document arguments for you and wants you to document them manually in order to avoid ugly help pages

So any documentation for arguments is done manually in the docstring
here are some examples of using the interface:
[ ~/Repos/HPI-to-master | click ] $ hpi module requires my.reddit
dependencies of my.reddit
'git+https://github.com/karlicoss/rexport'
'git+https://github.com/seanbreckenridge/pushshift_comment_export'
[ ~/Repos/HPI-to-master | click ] $ hpi module install --help
Usage: hpi module install [OPTIONS] MODULE

  Install dependencies for a module using pip

  MODULE is a specific module name (e.g. my.reddit)

Options:
  --user  same as pip --user
  --help  Show this message and exit.

[ ~/Repos/HPI-to-master | click ] $ hpi doctor --skip-config-check my.reddit my.github.all
✅ OK  : my.reddit
✅     - stats: {'saved': {'count': 51, 'last': datetime.datetime(2016, 9, 26, 0, 13, 19, tzinfo=<UTC>)}, 'comments': {'count': 4914}, 'submissions': {'count': 39}, 'upvoted': {'count': 923}}
✅ OK  : my.github.all
✅     - stats: {'events': {'events': {'count': 5697, 'last': datetime.datetime(2021, 4, 3, 7, 24, 37, tzinfo=<UTC>)}}, 'get_events': {'get_events': {'count': 5697, 'last': datetime.datetime(2021, 4, 3, 7, 24, 37, tzinfo=<UTC>)}}}

Only other thing I was worried about is adding a core dependency without a check?
If someone else is using this as an editable package and git pulls periodically to update this, and they didn't happen to have click installed (low chance given its popularity, but still), the import click would just fail
perhaps I should add something like?
try:
	import click
except ModuleNotFoundError:
	print("this requires click for the user interface now.. run : python3 -m pip install --user click")
	sys.exit(1)

Would resolve #148

Hmm, had a feeling this might fail in the CI...
seems the guess_stats returned a module instead of the stats for my.core...
______________________________ test_doctor_single ______________________________

    def test_doctor_single():
        # cli test
        from click.testing import CliRunner
        result = CliRunner().invoke(main, ['doctor', '--skip-config-check', 'my.core'])
        assert result.exit_code == 0
>       assert "no 'stats' function" in result.output
E       assert "no 'stats' function" in '✅ OK  : my.core                                           \n❗      - stats:                      computing failed\n  ...core/__main__.py", line 261, in modules_check\n       res = stats()\n   TypeError: \'module\' object is not callable\n'
E        +  where '✅ OK  : my.core                                           \n❗      - stats:                      computing failed\n  ...core/__main__.py", line 261, in modules_check\n       res = stats()\n   TypeError: \'module\' object is not callable\n' = <Result okay>.output

/home/runner/work/HPI/HPI/my/core/__main__.py:444: AssertionError

switched it to testing 'module requires' since that uses 'discovery_pure' and shouldn't fail due to something in the CI since its parsing the AST instead
Just wanted to have an example of using the click testrunner in there to show it was possible

Also, not sure if the --user problem has been an issue for you recently. I remember it used to just break since it didn't have permission on my mac, has always worked on my linux machine as far as I remember
Probably 2 or 3 years ago there was a pip update that fixed the issue on the mac, where if it wasn't able to install into the python location for the globally installed python (typically that would need sudo) it would switch to behavior similar to the --user flag.
Since then things like python3 -m pip install packageName have worked fine on mac for me, they just send a warning sayings its switching to the user-specific directory
Fine to leave it there for the foreseeable future, as who knows what version of pip someone is on, but as a data point, hasn't been a problem for me for a while.

Hmmm indeed, somehow it works now!
But still looks like it's not 100% consistent :thinking:
$ which pip3
/home/karlicos/.local/bin/pip3

$ pip3 install httpx && pip3 uninstall --yes httpx
Defaulting to user installation because normal site-packages is not writeable
Collecting httpx
  Using cached httpx-0.17.1-py3-none-any.whl (68 kB)
Installing collected packages: httpx
Successfully installed httpx-0.17.1
WARNING: You are using pip version 20.2.2; however, version 21.0.1 is available.
You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
...

$ /usr/bin/pip3 install httpx && pip3 uninstall --yes httpx
Collecting httpx
  Using cached httpx-0.17.1-py3-none-any.whl (68 kB)
Installing collected packages: httpx
Successfully installed httpx-0.17.1
...

So somehow both succeed, but only user pip is printing the warning Defaulting to user installation because normal site-packages is not writeable? Also interesting that only user pip is printing upgrade warning, even though both are on the old version.


Fix sitemap generation

Description
There were two issues here:

the canonical url generator didn't check if the url had an extension
it was also modifying the provided url

Testing instructions
Preview link:
Checklist

[ ] Review label added
[ ] PR pointed to correct branch (main for immediate publishing, or a release branch: e.g. release/gateway-3.2, release/deck-1.17)


Can this used on connect remote server(windows)?

My mdb file is placed on a remote windows server, so if this tool used with remote server? And if it can do this, how does this code may look like? like this:
var connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=//XXX(IP)/XXX(Folder)/XXX(.mdb)
I test this but it didn't work

You can try connect access server, not a access mdb file.

Hi, we want to connect to a remote .mdb file with a network path (windows) like
Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\computerName\application\folder1\folder2\file.mdb
Is it possible to do that ?

Hi @tEiras , did you fix this yet?


Convert Average to UDAF

Is your feature request related to a problem or challenge?
Similar to others issue in #8708
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response

take


Extra slashes causes route error

Extra slashes in the URL change the routing. For example, /x and //x do not route the same way.
Here's a unit test which demonstrates this:
https://gist.github.com/robnagler/1a5d0361cc71a6806fc6
If you put a proxy in front of flask, it will normalize the URLs so this isn't an issue. It would seem, however, that Flask should normalize the URLs as well.

Possible duplicate of mitsuhiko/flask#900.

I don't think that this is likely to be a limitation of WSGI.

/x and /x/ are also treated differently as they are different. Before "fixing" this we should check whether this is actually an issue.

I don't think this is a duplicate of #900, which is about embedded slashes, e.g. http://www.bivio.biz/bp/Intro%2F returns not found, because "Intro/" is an unknown page in the system.
This issue is about extra, contiguous slashes. Application frameworks  can (and should, imo) ignore extra, unencoded slashes. For example, http://slashdot.org///////////////stories is the same as http://slashdot.org/stories.

Does any RFC suggest/require this kind of normalization? If not, my opinion on this is garbage in garbage out

I don't think this is a duplicate of #900, which is about embedded slashes, e.g. http://www.bivio.biz/bp/Intro%2F returns not found, because "Intro/" is an unknown page in the system.

That's not what the issue is about. It returns "Not Found" because %2f is supposed to stay escaped, while the WSGI layer decodes it.

Ignore my previous comment, we actually do mean the same thing.

These kinds of URLs mostly occur when building links by simply concatenating segments, so I would agree that it's a good idea to handle such broken links. However, I don't understand why websites (or those that I've tried) simply serve the same content instead of redirecting to the correct page. This seems like much saner behavior.

Serving the same content might be a significant problem, if Google or other search engines consider such urls to be different.

On most operating systems, extra slashes resolve to one. URLs came from file system notation so it would seem that the two should respond in the same way.
Apache removes duplicate slashes for a good reason.
Nginx has the merge_slashes directive, which is on by default.
RFC 3986 seems to imply you can't have multiple, contiguous slashes:
      path          = path-abempty    ; begins with "/" or is empty
                    / path-absolute   ; begins with "/" but not "//"
                    / path-noscheme   ; begins with a non-colon segment
                    / path-rootless   ; begins with a segment
                    / path-empty      ; zero characters

      path-abempty  = *( "/" segment )
      path-absolute = "/" [ segment-nz *( "/" segment ) ]
      path-noscheme = segment-nz-nc *( "/" segment )
      path-rootless = segment-nz *( "/" segment )
      path-empty    = 0<pchar>
      segment       = *pchar
      segment-nz    = 1*pchar
      segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
                    ; non-zero-length segment without any colon ":"

      pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"

Note that path-* require segment-nz. segment-nz requires at least one pchar, which cannot be a slash.

Apache removes duplicate slashes for a good reason.

Both sides make good arguments in that thread. Note that I'm not opposed to handling multiple slashes as one, but I'm not sure

how to handle backwards compat... maybe disable this behavior if the user defines routes differing only in amount of slashes? At which point does Flask's routing behavior become incomprehensible?
whether to redirect or just "accept", see above.

If people are using Apache or Nginx (and I suspect others) as a proxy, slashes are getting normalizepnd today. This only showed up when I was testing with the built-in HTTP server, which is arguably not the way people will deploy Flask in production.
You could have a backward compatibility flag, but leave it off by default. If people are expecting multiple slashes to be significant, they are likely(hopefully?) have a test for this uncommon behavior. You could raise an exception if routes are defined with multiple slashes. Consider this route:
@app.route('/<first>/<rest>')

What's supposed to happen here if <first> is empty? Flask does not route /<first>/<rest> with //x.
I do not think implicit redirects are a good idea. I do think there could be an option here, which could be on by default.
URLs like '/x/../index.html' do not redirect in Apache or Nginx. (BTW, Flask doesn't handle this correctly, and this is clearly defined behavior in RFC 3986.  In this case, most browsers normalize these URLs before sending, but curl, for example, doesn't, and therefore Flask or the underlying Python HTTP server must.)

Why does Flask handle this less correctly than other implementations?

I'm assuming you mean handling of '..'.  Here's a gist that demonstrates '/..' doesn't route to '/', which
I believe it should[*]:
https://gist.github.com/robnagler/5bc9399f0e761e75fdd9
The purpose of the frameworks, I believe, is to eliminate these types of issues. From a security point of view, it is better if '..' handling is done by the framework. From a practical point of view, it's extra
unnecessary work for the application programmer.
[*] From RFC 3986:
The path segments "." and "..", also known as dot-segments, are defined for relative reference within the path name hierarchy. They are intended for use at the beginning of a relative-path reference (Section 4.2) to indicate relative position within the hierarchical tree of names. This is similar to their role within some operating systems' file directory structures to indicate the current directory and parent directory, respectively. However, unlike in a file system, these dot-segments are only interpreted within the URI path hierarchy and are removed as part of the resolution process (Section 5.2).

This is a Werkzeug issue, reported at pallets/werkzeug#1132.


uma.txt - Universidad de Málaga/Spain

Universidad de Málaga/Spain
Official website: https://www.uma.es/
Schools where IT degrees and masters are taught, lasting at least one year or more :
https://www.uma.es/etsi-de-telecomunicacion/
https://www.uma.es/etsi-informatica/

@aarizaq I am sorry, the domain uma.es is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).

Unfortunately, as a teacher, I cannot use the GitHub student developer program


Testing CI (do not merge)

Test 1. No news has been created - it should fail the CI even though main contain .rst news files.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.32%. Comparing base (c62e49d) to head (1ac60ba).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #33   +/-   ##
=======================================
  Coverage   97.32%   97.32%
=======================================
  Files          35       35
  Lines        1418     1418
=======================================
  Hits         1380     1380
  Misses         38       38

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Japanese Yen string update

What ❓
Updated the strings, most notably, "¥ Japanese Yen (JPY)".
Story 📖
Trello Story
See 👀

 [JP] Change copy "Yen (JPY)" to "Japanese Yen (JPY)" in currency selection menu


change ProcessInfo.processinfo() class func to processinfo static let

to align with recent changes on Darwin (Xcode 8)

@swift-ci please test

FYI I'm sure there are many more of these than the 3 PRs I just filed. A good starter task could be to audit all of the changes in Foundation from Xcode 8 betas and align Swift Foundation with them.

 Looks like these two changes would have to be made simultaneously. How would you suggest we do this @parkera?

Can you put up a PR for XCTest? I'll merge them together.

Sure thing! apple/swift-corelibs-xctest#144

Hm, is it possible to temporarily stage this by having both names in Foundation?

Hm, is it possible to temporarily stage this by having both names in Foundation?

I don't think so, since referring to ProcessInfo.processInfo would then be ambiguous because that's also a valid way to refer to the processInfo() function.

Ok - let's hold off on this particular change for a few days. The rest of Swift is scrambling to land source breaking changes, but per my email to swift-corelibs-dev earlier today, we have a few more weeks. That will keep us out of the line of fire while everything else finishes up.

Then we can do a simultaneous merge of both PRs.

happy to wait if it helps

rebased

Hopefully we can un-stick the Linux builder today and land this. Thanks for your patience.

Going to go ahead and merge these.


Frontend master extractor

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description of your pull request and other information
Adds the ability to download courses from the FrontendMasters site, only if with a regular account. Should solve issue #3661
Credentials sent by email

@dstftw As requested I have made the changes. Please review for any more possible issues (if any)

Hi @dstftw, is it necessary to close this PR?
I can see that it is not the smoothest integration :)
You have a lot of good points here, and it is clear that @Kerruba wants this PR to happen and do your changes. If he asks, he probably does not understand.
I would like to ask you for patience here.
Thank you for consideration!
Disclaimer: I know none of you. I just see PR which would be great to have (after review).


Error trying to login

I have a fresh install using the provided docker-compose.yaml file. When trying to sign in I get this error.
{"redirect_uri": ["Not a well formed URL."]}

I'm sure it has to do with the bot configuration in the discord developer portal but I can't find any information about what to set the Oath settings to.

Hey!
In the provided docker-compose.yml, you can find the configuration for the bot as environment variables. There is a variable called YURI_WEBSERVER_PUBLICADDRESS. This needs to match the domain you are setting in the Discord developer portal in the OAuth2 Configuration of your bot.
https://github.com/zekroTJA/yuri69/blob/master/docker-compose.yml#L68C7-L68C57
If you still have problems, could you please share the value you've set for YURI_WEBSERVER_PUBLICADDRESS? Feel free to retract the domain if you don't want to share it publicly.


404 error while rendering APIs

This is an intermittent issue but we are seeing it quite often now.
Nutanix uses an embedded system to upload our APIs through Stoplight studio on nutanix.dev. Recently, when users click on any product name to launch the API details, a 404 error screen is shown. It goes off when the user refreshes the page.  As I pointed out earlier, it's an intermittent issue but happening quite frequently in the last few days.

@smitabh84 About two weeks ago we had some performance problems that have since been resolved. Are you still seeing this?

Hi Nauman,
I am not seeing it currently, but as I had mentioned it is an intermittent issue. I will keep a watch and update this thread if the 404 error is reported by customers again. Thanks for the update.

Hello!
Our team recently took over the stewardship of the elements repo.
Due the volume of un-triaged issues that are pretty old and the time it would take us to get caught up on all of them, we kindly ask that you open up a new ticket if this is still an issue you're struggling with.
If you open a new issue please include:

clear steps to reproduce that include example OAS specs, application setup, code, etc.
the error or issue you are experiencing
the expected behavior

We will be triaging any new tickets in a timely manner.
Thank you for understanding!


[SPARK-9325][SPARK-R] head() and show() for Columns

See attached design document
SparkR collect (JIRA doc).pdf

Test build #51820 has started for PR 11336 at commit fbf9b02.

Test build #51820 has finished for PR 11336 at commit fbf9b02.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51820/
Test FAILed.

Nice! thanks for doing this.

Thanks @falaki!

Jenkins, retest please. All tests pass for me after checking out this branch.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51832/
Test FAILed.

@AmplabJenkins Jenkins, could you retest please? I see ERROR: Error fetching remote repo 'origin'

Test build #51844 has started for PR 11336 at commit 2d9ee18.

Test build #51844 has finished for PR 11336 at commit 2d9ee18.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51844/
Test FAILed.

Merged build finished. Test FAILed.

Test build #51846 has started for PR 11336 at commit dc3df19.

Test build #51846 has finished for PR 11336 at commit dc3df19.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51846/
Test FAILed.

Test build #51848 has started for PR 11336 at commit 1e06d3c.

Test build #51848 has finished for PR 11336 at commit 1e06d3c.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51848/
Test FAILed.

Test build #51860 has started for PR 11336 at commit d697d44.

Test build #51860 has finished for PR 11336 at commit d697d44.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51860/
Test FAILed.

Merged build finished. Test FAILed.

@sun-rui @shivaram Do you know which version of R and SparkR's dependencies are being used in Jenkins? Tests run fine in my environment (have reviewed my code and ran unit tests many times). Wondering if that's due to a different version of R, testthat, devtools, rJava, etc.

Test build #51863 has started for PR 11336 at commit 24b6154.

Test build #51863 has finished for PR 11336 at commit 24b6154.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51863/
Test FAILed.

Merged build finished. Test FAILed.

The R version used by Jenkins seems to be 3.2.x (can't remember clearly). There is a JIRA requesting using R 3.1.1, https://issues.apache.org/jira/browse/SPARK-11255, but it is not fixed.

It was changed to 3.1.1 actually but there is a request to change to 3.1.2 hence the JIRA was reopened.
On Wed, Feb 24, 2016 at 3:43 AM -0800, "sun-rui"<EMAIL_ADDRESS>wrote:
The R version used by Jenkins seems to be 3.2.x (can't remember clearly). There is a JIRA requesting using R 3.1.1, https://issues.apache.org/jira/browse/SPARK-11255, but it is not fixed.

Reply to this email directly or view it on GitHub:
https://github.com/apache/spark/pull/11336#issuecomment-188214706

Looks like the last one was just a flaky test in mllib. Lets try again
Jenkins, retest this please

Test build #51904 has started for PR 11336 at commit 6a38a3c.

Test build #51904 has finished for PR 11336 at commit 6a38a3c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51904/
Test PASSed.

Thanks, folks. Looks like all test pass now! :-)
However, on my environment (R 3.2.2), two tests don't pass. We should be careful whenever upgrading the R version:
1. Failure (at test_sparkSQL.R#1052): column functions -------------------------
result not equal to expected
Names: 1 string mismatch

2. Failure (at test_sparkSQL.R#1058): column functions -------------------------
result not equal to expected
Names: 1 string mismatch
Error: Test failures

The office document says Spark supports R 3.1+, so it is reasonable to assume R 3.2.2 should work with SparkR as well. I run R 3.2.2.
Is there a way to make it work with 3.1.x and 3.2.x?

@felixcheung It wasn't an R issue after all. The problem was that I hadn't been able to rebuild Spark in the last couple days due to SPARK-13431, and I needed changes on SPARK-12799. Now that it’s fixed, everything runs fine on R 3.2.2. Thank you!

Can any of you folks please take a look at the code? Thanks!

@olarayej, I am not sure if it is conceptually correct to associate a Column to only one DF. Conceptually, a Column could be depend on 0, 1, 2 or more DataFrames. For example:
c1 <- df1$c1
c2 <- df2$c2
c3 < - c1 + c2

SparkR doesn't support operations between columns from different DataFrame objects. Yet you can do:
c1 <- df1$c1
c2 <- df2$c2
c3 < - c1 + c2

c3 can't be used at all. See examples below:
## Create two DataFrames from Iris
> irisDF <- createDataFrame(sqlContext, iris)
> irisDF2 <- createDataFrame(sqlContext, iris)

## Create Column x, adding two Columns in two DataFrame's
> x <- irisDF$Sepal_Length + irisDF2$Sepal_Length

## You can't use Column x as a predicate
> irisDF[x > 0, ]
16/03/01 11:04:19 ERROR RBackendHandler: filter on 76 failed
Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
  org.apache.spark.sql.AnalysisException: resolved attribute(s) Sepal_Length#20 missing from Sepal_Length#15,Petal_Width#18,Sepal_Width#16,Petal_Length#17,Species#19 in operator !Filter ((Sepal_Length#15 + Sepal_Length#20) > 0.0);

## You can't select Column x either
> select(irisDF, x)
16/03/01 11:04:43 ERROR RBackendHandler: select on 76 failed
Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
  org.apache.spark.sql.AnalysisException: resolved attribute(s) Sepal_Length#20 missing from Sepal_Length#15,Petal_Width#18,Sepal_Width#16,Petal_Length#17,Species#19 in operator !Project [(Sepal_Length#15 + Sepal_Length#20) AS (Sepal_Length + Sepal_Length)#25];

> select(irisDF2, x)
16/03/01 11:04:45 ERROR RBackendHandler: select on 91 failed
Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
  org.apache.spark.sql.AnalysisException: resolved attribute(s) Sepal_Length#15 missing from Sepal_Length#20,Sepal_Width#21,Species#24,Petal_Width#23,Petal_Length#22 in operator !Project [(Sepal_Length#15 + Sepal_Length#20) AS (Sepal_Length + Sepal_Length)#26];

In my opinion, we should throw an error if the user is trying to operate on Columns coming from different DataFrames.

@olarayej,
c3 can be used on a DataFrame that is joined between df1 & df2
df3 <- join(df1, df2)

@sun-rui Yes. In that case, c3 will be only associated to df3.

Also, the fact that the size of a column depends on the join seems counter-intuitive for an R user:
> dim(irisDF2)
[1] 150   5

> dim(irisDF)
[1] 150   5

> x <- irisDF$Sepal_Length + irisDF2$Sepal_Length

In R, x will always have 150 elements. However:
# Cartesian product
> df3 <- join(irisDF, irisDF2)
> dim(select(df3, x))
[1] 22500     1

# Inner join by Species
> df4 <- merge(irisDF, irisDF2, by="Species")
> dim(select(df4, x))
[1] 7500    1

I still think SparkR shouldn't allow operations between columns coming from different DataFrames. And, in the case of a join, operations can be performed on the joined DataFrame (e.g., df3) as opposed to the original ones (e.g., irisDF and irisDF2).

@sun-rui Does that make sense to you? @shivaram @felixcheung Any comments?

A column can be applied to different dataframes.
For example, if both df1 and df2 have a column named "col",then
col <- column("col")
collect(select(df1, col))
collect(select(df2, col))
both works.
Take the join case above as example,
You have can different DataFrames resulting from different joins on both df1 and df2,
and apply c3 to the different resulting DataFrames also work.
So how do you know which dataFrame to associate with a column in such cases?
@rxin, any comments on this issue?

I personally find it confusing having to reason about when we can "head"/"collect"/"show" and when we cannot, and that's why the Scala/Python version of the API didn't have this feature.

Hi @rxin ,
If we see that in general R have more features than python and other language as far as stats and ml is concerned. So it would be nice to have more R like approach than having the global goal of compatibility in all the language support. so as long as JavaDataFrame is compatible in all the language one can always add more functions on the language specific dataframe i.e in this case R_DataFrame. Even though these features are not the main goal of SparkR , I think R user will find it more R like and appreciate it. Just come thoughts :)

Yeah I'm not sure whats the right resolution on this -- On the one hand I have to say that the Spark DataFrame model where a column doesn't belong to one (or any) DataFrame is more confusing from a users perspective.
However the risk of adding wrappers which don't follow the underlying data model is that it might lead to inconsistencies where some parts of the API don't work like others.

Test build #54546 has started for PR 11336 at commit c86bebb.

Test build #54546 has finished for PR 11336 at commit c86bebb.

This patch fails R style tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54546/
Test FAILed.

Test build #54557 has started for PR 11336 at commit bf6c456.

Test build #54557 has finished for PR 11336 at commit bf6c456.

This patch fails R style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54557/
Test FAILed.

Test build #54559 has started for PR 11336 at commit e5659ee.

Test build #54559 has finished for PR 11336 at commit e5659ee.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54559/
Test PASSed.

Thanks @sun-rui @rxin @shivaram  for your inputs. To alleviate the confusion on which columns can/cannot be collected, I propose the following (already pushed the code):
Currently there are 15 SparkR functions that return an ‘orphan’ Column with no parent DataFrame:
rand, rand, unix_timestamp,
struct, expr, column, lag, lead, lit, cume_dist, dense_rank,
ntile, percent_rank, rank, row_number

The first three (i.e., rand, randn, and unix_timestamp) can be nicely collected as single elements. For example:
> rand()
[1] 0.01483325

The remaining ones don’t make sense unless there’s an associated DataFrame. Therefore, an empty vector will be returned:
> column("Species")
Species
<Empty column>

> collect(column("Species"))
character(0)

I think it makes sense: If you don’t associate a Column with a DataFrame, there’s nothing to be collected. Now, for Columns that do belong to a DataFrame, collecting columns SIGNIFICANTLY improves usability in 138 functions/operators (besides other issues in the design document), for example:

irisDF$Sepal_Length * 100
[1] 510 490 470 460 500 540 460 500 440 490 540 480 480 430 580 570 540 510 570 510…

versus:

head(select(irisDF, irisDF$Sepal_Length * 100), 20)[, 1]
[1] 510 490 470 460 500 540 460 500 440 490 540 480 480 430 580 570 540 510 570 510

@shivaram has a very valid point: this introduces discrepancies in the Spark API’s across multiple languages. I believe this is not necessarily bad as R, especially, is a slightly different animal which already has a specific behavior for columns (i.e., vectors).

@shivaram @falaki @felixcheung @rxin @sun-rui Any thoughts on this?

Thanks @olarayej for the clarifications - Just broadening the discussion a bit:
@mengxr @thunterdb Could you comment if this will be useful in some of the ML use cases you are working on ?

Test build #58038 has started for PR 11336 at commit 9c1661f.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/58038/
Test PASSed.

I just got this branch up to date. Any comments, folks? @shivaram @falaki @felixcheung @rxin @sun-rui @mengxr

This tends to use a Column as a distributed vector :)  I don't object to add R-like features in SparkR, but am still not sure on this feature. I am neutral and up to other committer's vote

@olarayej are you interested in rebasing this PR and limiting its user impact to just head for now? We can continue the discussion on support for distributed vector (a.k.a. Column) in JIRA and when resolved create follow up PRs.

@falaki Absolutely. Let me do that. Thank you!

@olarayej any update not his. If you are busy I can start another PR from yours.

@falaki Sorry, I was out of town. Let me get back to this today. Thank you!

Test build #66753 has started for PR 11336 at commit 8f906a2.

Test build #66753 has finished for PR 11336 at commit 8f906a2.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66753/
Test FAILed.

@falaki Thanks for your comments. Yeah, before removing collect/show, I just wanted to rebase to current upstream master. I'm getting a build error which is actually a warning, not even an R error:
(converted from warning) 'sparkRSQL.init' is deprecated.
Use 'sparkR.session' instead.

I don't explicitly use sparkRSQL.init anywhere in my code so I'm investigating. If you have any suggestion, it'd be nice. Thanks!

I think some of the old tests still rely on sparkRSQL.init(). I believe the warning is OK.

@falaki Yeah but those warnings are making the build fail (see below). Is that okay? Now I see a new"Checks" section. I may be outdated with the protocols as it's been a while I didn't commit :-). Thanks!
Failed -------------------------------------------------------------------------
1. Error: column binary mathfunctions (@test_sparkSQL.R#1256) ------------------
error in evaluating the argument 'x' in selecting a method for function 'collect':
  error in evaluating the argument 'col' in selecting a method for function 'select': (converted from warning) 'sparkRSQL.init' is deprecated.
Use 'sparkR.session' instead.
See help("Deprecated")
1: expect_equal(class(collect(select(df, rand()))[2, 1]), "numeric") at /home/jenkins/workspace/SparkPullRequestBuilder/R/lib/SparkR/tests/testthat/test_sparkSQL.R:1256
2: compare(object, expected, ...)
3: collect(select(df, rand()))

Test build #66767 has started for PR 11336 at commit ed0abf2.

Test build #66767 has finished for PR 11336 at commit ed0abf2.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66767/
Test FAILed.

I know why tests fail - please see my comment.

Test build #66832 has started for PR 11336 at commit 20e53e8.

Test build #66832 has finished for PR 11336 at commit 20e53e8.

This patch fails some tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66832/
Test FAILed.

Merged build finished. Test FAILed.

Test build #66834 has started for PR 11336 at commit 266d5ff.

Test build #66834 has finished for PR 11336 at commit 266d5ff.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test build #66844 has started for PR 11336 at commit 257fa86.

Test build #66844 has finished for PR 11336 at commit 257fa86.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66844/
Test FAILed.

Merged build finished. Test FAILed.

@falaki @felixcheung I have addressed all your comments. I'm getting two documentation warnings which seem to be making the build fail:

Undocumented S4 methods:
  generic 'head' and siglist 'Column'
  generic 'show' and siglist 'Column'

The documentation for these is on Data.Frame.R. I don't see a need for duplicating the docs in column.R

Undocumented arguments in documentation object 'Column-class'
  'df'

Undocumented arguments in documentation object 'head'
  '...'

I do have documentation for slot df in class Column. And also, I don't have ... as part of the signature of method head. Not sure why this warning comes up.

@wangmiao1981 These are required for the recently added CRAN checks to ensure we could release SparkR as a R package.

note in-line - they need to have #' @rdname

I'm not sure about "Column-class" we should check the generated .Rd file
As for "head", I think it's because there is an existing generic and that has ... in the signature
Did it work if you skip the generic here setGeneric("head")https://github.com/apache/spark/pull/11336/files#diff-8e3d61ff66c9ffcd6ffb7a8eedc08409R555
If not, we need to match the existing generic https://stat.ethz.ch/R-manual/R-devel/library/utils/html/head.html

Test build #66905 has started for PR 11336 at commit 0691c32.

Test build #66905 has finished for PR 11336 at commit 0691c32.

This patch fails R style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66905/
Test FAILed.

Merged build finished. Test FAILed.

Test build #66911 has started for PR 11336 at commit 445407c.

Test build #66911 has finished for PR 11336 at commit 445407c.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66911/
Test FAILed.

Test build #66921 has started for PR 11336 at commit 1ace2e5.

Test build #66921 has finished for PR 11336 at commit 1ace2e5.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66921/
Test FAILed.

Test build #66968 has started for PR 11336 at commit 2bfb8a6.

Test build #66968 has finished for PR 11336 at commit 2bfb8a6.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66968/
Test FAILed.

Merged build finished. Test FAILed.

Test build #66973 has started for PR 11336 at commit e0bba0a.

Test build #66973 has finished for PR 11336 at commit e0bba0a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66973/
Test PASSed.

@felixcheung @falaki I have addressed all your comments and tests pass now. Thank you! cc @aloknsingh

could you update the JIRA and PR to reflect what's being added here?

Test build #67220 has started for PR 11336 at commit 76061ad.

Test build #67220 has finished for PR 11336 at commit 76061ad.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67220/
Test PASSed.

Test build #67348 has started for PR 11336 at commit ed1b382.

Test build #67348 has finished for PR 11336 at commit ed1b382.

This patch fails R style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67348/
Test FAILed.

Test build #67351 has started for PR 11336 at commit 1338d71.

Test build #67351 has finished for PR 11336 at commit 1338d71.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

@felixcheung @falaki I have addressed all your comments. Shall we merge?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67351/
Test PASSed.

@felixcheung @falaki Folks?

do you have tests for the case where the df is null, like https://github.com/apache/spark/pull/11336/files#diff-04c14efaae2b7b0f0a45038482f2590cR77?
There are several other cases too.

one thing to highlight, previously we discussed a proposal to display a subset of values for a variable, such as when typing in the variable name in R shell or RStudio
> a <- iris
> a
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa

This PR includes a change to how Column is presented in this case,
before
> a <- as.DataFrame(iris)
> a
SparkDataFrame[Sepal_Length:double, Sepal_Width:double, Petal_Length:double, Petal_Width:double, Species:string]
> a$Sepal_Length
Column Sepal_Length

after
> a$Sepal.Length
  [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
 [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0

So instead of type and name we would be doing a collect.
In the earlier discussion, it was concluded that we would not be doing this without an explicit method call (like head(col)), unless, perhaps when the data frame is local.

@felixcheung When a user types a variable name on the R shell, it triggers method showDefault() which, in turn, invokes show(). I wrote an implementation of show() for Column which, in turn, invokes head() (not collect), showing the first 20 elements of the dataset. This mimics R behavior and I think it also helps with usability. However, if the agreement is not to have that, I can just remove show method.

Just pointing out what might not be obvious for other observers.
:)

Test build #67536 has started for PR 11336 at commit 619f23b.

Test build #67536 has finished for PR 11336 at commit 619f23b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67536/
Test PASSed.

Merged build finished. Test PASSed.

@felixcheung I'm done! Thanks for your comments!

@olarayej @felixcheung Sorry I've missed the updates to this. I'll try to take a look at this later today ?

@shivaram @falaki @felixcheung Any additional comments? Otherwise, are we ready to merge?

Folks?

@shivaram @felixcheung @falaki Any thoughts?

I did another pass. It looks good to me.

@falaki @shivaram Shall we merge this?

I think @shivaram should review this.

Sorry this got dropped from my radar as I was caught up with some other stuff. I am more free for the next 2-3 days. Will review this

Happy New Year, folks! Any updates on this? @shivaram @falaki

Any update on this PR?

ping @olarayej
cc @felixcheung

@shivaram: Have you reviewed this? If the intent is to merge it, I'll gladly update the code. @gatorsmile

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4296/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4329/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4336/
Test PASSed.

Test build #97866 has started for PR 11336 at commit 619f23b.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4358/
Test PASSed.

Build finished. Test FAILed.

Build finished. Test FAILed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/15824/
Test PASSed.


Suggestions for creating config-controlled plugins?

I want to improve the Swift Package Manager support to use the Package.swift config file instead of trying to parse directories with regular expressions. The reality is that the tests could live anywhere and the module name might not correspond to the path on disk at all. Using regular expressions is fine for some end users that follow fairly strict naming conventions, but the reality is that we should be using the existing configuration if we want to ensure that we play nicely with everyone.
The information for determining the module info exists in the Package.swift file, and we can get a JSON version of it for easy parsing, but the command to get that info (swift package describe --type json) takes roughly .14 seconds on my machine, which seems too slow for repeated calling.
Is there any prior art for using a config to drive the module/test file identification? Alternatively, do you have any suggestions for how to approach this?

AFAIK there is no precedence in this for the PHP and JavaScript runners that I have developed.

The only time runners I wrote would call any shell commands would be when printing file content (using cat). However, I don't think that calling a command like swift package describe --type json would be problematic, I would just cache the result in a script-local variable (prefixed with s:), so that it needs to be run only once in a Vim session.


Merge branch V1.1 into master

The changeset looks scary, but it's just a conflict merge. To see the actual added changeset , see last commit changeset


Tutorial has mistakes

I'm trying to read data from minio server with code from tutorial:
import xarray as xr

%%time
ds = xr.open_dataset("reference://", engine="zarr", backend_kwargs={
                    "consolidated": False,
                    "storage_options": {"fo": 'my_reference.json',
                    "remote_protocol": "s3",
                    "remote_options": {"anon": True}}
                    })
print(ds)

However it crashed with this:
TypeError: ZarrBackendEntrypoint.open_dataset() got an unexpected keyword argument 'remote_protocol'"
The whold report is here.
So did the repository change when I don't know?

This is a case of bad parentheses; indenting for clarity:
ds = xr.open_dataset(
    "reference://",
    engine="zarr",
    backend_kwargs={
        "consolidated": False,
        "storage_options": {"fo": 'my_reference.json',
            "remote_protocol": "s3",
            "remote_options": {"anon": True}
        }
    }
)

has "remote_protocol" inside storage_options, which is within backend_kwargs. You see that remote_protocol does not to to the outermost call, which is what your exception is indicating.
Note that more recently, there is a "kerchunk" backend which makes this a bit less verbose
ds = xr.open_dataset(
    'my_reference.json',
    engine="kerchunk",
    backend_kwargs={
        "remote_protocol": "s3",
        "remote_options": {"anon": True}
    }
)

This is a case of bad parentheses; indenting for clarity:
ds = xr.open_dataset(
    "reference://",
    engine="zarr",
    backend_kwargs={
        "consolidated": False,
        "storage_options": {"fo": 'my_reference.json',
            "remote_protocol": "s3",
            "remote_options": {"anon": True}
        }
    }
)

has "remote_protocol" inside storage_options, which is within backend_kwargs. You see that remote_protocol does not to to the outermost call, which is what your exception is indicating.
Note that more recently, there is a "kerchunk" backend which makes this a bit less verbose
ds = xr.open_dataset(
    'my_reference.json',
    engine="kerchunk",
    backend_kwargs={
        "remote_protocol": "s3",
        "remote_options": {"anon": True}
    }
)

Thank for your reply，but in origin reports，brace of storage_options is completed:

May be when I'm copying the code, there is something wrong.
And there is another problem:
https://stackoverflow.com/questions/78074124/how-to-read-zarr-files-correctly-from-minio
Why the 3 methods all crashed? What's correct method to read zarr from minio server?
Hope your reply sincerely.

The image looks very wrong indeed, the keys are not even in the right order, and why are all the quote marks escaped?

The image looks very wrong indeed, the keys are not even in the right order, and why are all the quote marks escaped?

I think this is because of pastebin's mechanism，it may add quotation mark to some strings.
In fact，origin code doesn't look like this.
And can you cost a minute to read my another problem?
https://stackoverflow.com/questions/78074124/how-to-read-zarr-files-correctly-from-minio
Thank you for a lot.

This is a case of bad parentheses; indenting for clarity:
ds = xr.open_dataset(
    "reference://",
    engine="zarr",
    backend_kwargs={
        "consolidated": False,
        "storage_options": {"fo": 'my_reference.json',
            "remote_protocol": "s3",
            "remote_options": {"anon": True}
        }
    }
)

has "remote_protocol" inside storage_options, which is within backend_kwargs. You see that remote_protocol does not to to the outermost call, which is what your exception is indicating.
Note that more recently, there is a "kerchunk" backend which makes this a bit less verbose
ds = xr.open_dataset(
    'my_reference.json',
    engine="kerchunk",
    backend_kwargs={
        "remote_protocol": "s3",
        "remote_options": {"anon": True}
    }
)

I used kerchunk engine, however there is still mistake:
https://pastebin.com/FsBydUA1
vds = xr.open_dataset("gpm_gfs_nc.json", engine="kerchunk", backend_kwargs={
            "remote_protocol": "s3",
            "remote_options": conf.MINIO_PARAM
        })

TypeError: ZarrBackendEntrypoint.open_dataset() got an unexpected keyword argument 'remote_protocol'
So are you sure there is not any mistake in tutorial？Or there are some other changes which I don't know？

Now I think this is a problem of xarray, so I will close this issue.


Symlink available commands to bin

This is another question.
Many times we run commands or write scripts that access common paths in linux, such as /bin/bash.
How can I make nixos automatically symlink all commands to the bin directory?

The "Nix" way to do this is to avoid these paths.#!/usr/bin/env $bin should work in all cases.
You definitely can set up a symlink from /bin to /run/current-system/sw/bin but you could also just use the current-system path. Either way though there's probably a better way that doesn't involve hard coding a path.

Ok thanks Matthew that is good to know...
Its just a lot of my scripts have /bin/bash at the top.
A lot of scripts I get off the internet also have something like /bin/bash at the top.
Are you saying those scripts can have something other than /bin/bash at the top that will still get the job done?

No, @matthewbauer meant you should place the interpreter inplace of $bin: ex.: #!/usr/bin/env bash, #!/usr/bin/env php or #!/usr/bin/env python

Thank you! You are my hero.

$ cat ./foo.awk
#!/usr/bin/env -S awk -f
END { printf "WORKS" }
$ ./foo.awk </dev/null
WORKS

Thanks. -S now works after updating my coreutils to 8.30.  https://stackoverflow.com/questions/1418245/invoking-a-script-which-has-an-awk-shebang-with-parameters-vars


segfault at exit when using non null terminated strong for glfwSetWindowTitle()

When using glfwSetWindowTitle() on X11 I stupidly passed a non null terminated string. This gets passed down to https://linux.die.net/man/3/xutf8setwmproperties which requires a null terminated string.
I believe this is a bug and we should check for null termination but its not clear to me where the best place to do it is or what limitations we should impose.
Even maybe just calling out out some documentation is good enough. with a C++ string example of something like:
auto title = string("This is my title");
glfwSetWindowTitle(window, title.c_str());

I'm afraid I disagree that this is a bug. Strings being NUL-terminated in C is fundamental to the language, and all sorts of things (not just glfw) will break if you pass around char pointers without due care and attention. It is not the job of the API documentation to cover usage from other languages such as C++.
I suppose it wouldn't hurt to add "null-terminated" to the API documentation wherever we use strings. Do you think that change would have helped you to have avoided the problem?

we should check for null termination

I just can't think of any way to do this. From the point of view of a function receiving a char pointer, there's just not enough information to distinguish a terminated string from an unterminated one. Best case it looks like a longer string than intended with garbage bytes at the end (there will be a 0 byte somewhere in memory), worst case the code faults trying to read out of bounds.
Out of interest, what did the code look like that was creating a non-terminated string?
Aside: if you want type-safety, I suggest looking at C++ wrappers, rather than using the C API directly. https://github.com/Cvelth/vkfw for example accepts a std::string_view rather than a raw pointer (if supported by the compiler), which probably would have avoided this issue.

Yeah. This is my mistake and I apologize for wasting your time.
It came about of a poor bisect while looking for an introduced segfault. The bisect identified a change made (by me) wrt to setting a window title. Looking at it further I found that it was something entirely different.

Out of interest, what did the code look like that was creating a non-terminated string?

The code that I introduced looked similar to:
setTitle(GLFWwindow* window, const std::string& name)
{
      auto title = "Some Title - " + name;

     /* I need to review the C++ docs / tests to see if data() returns a null terminated string.... I don't think there is any difference between .c_str() and .data()... */
      glfwSetWindowTitle(window, title.data());
}

I suppose it wouldn't hurt to add "null-terminated" to the API documentation wherever we use strings. Do you think that change would have helped you to have avoided the problem?

I think this was the only thing that I could suggest that makes any sense. I don't think it will stop me personally from being dumb. But while debugging and tracing the docs after something weird happens, it will stop me from wasting your time because you already thought about it. I normally expect a small section about string expectations like UTF-8 encoded, always null terminated etc.

Aside: if you want type-safety, I suggest looking at C++ wrappers, rather than using the C API directly. https://github.com/Cvelth/vkfw for example accepts a std::string_view rather than a raw pointer (if supported by the compiler), which probably would have avoided this issue.

Yeah, this is what I normally use for personal projects. The company I work for has already brought in the C-API instead and I personally don't care which tool we use C or C++.

No, that isn't a C++ example of the bug; despite std::string being notoriously lawful, .c_str() guarantees null termination. Your initial example contradicts the one where you gloss over the comment I don't think there is any difference between .c_str() and .data(). They are not identical; .data does not guarantee null termination.

Your initial example contradicts the one where you gloss over the comment

Sorry if I wasn't clear. I inserted that comment as I was moving it into the github comment.

They are not identical; .data does not guarantee null termination.

Yeah, I was pretty sure that was the case and part of the motivation for this ticket.
The title "segfault at exit when using non null terminated strong for glfwSetWindowTitle()" is wrong after I did more digging and I need to rename it.
Since we have a C-API it is fair to say that this isn't a bug and a won't fix. It is fair to assume people understand that this is a c-str and strings should be null terminated.
It is possible that that someone could be as dumb as I and create a similar issue again in the future. When this happens its likely we would have this discussion again. The alternative is a one line comment pointing to some documentation saying look here dummy.
Either solution is fine by me.


Travis test and documentation fixes

Updates TRAVIS.md instructions
Adds a missing sudo to gcloud components update.
Removes the deprecated "-f" flag from docker push commands.
Adds the requires "--" separator to gcloud docker commands.
Adds an error message when the gRPC to PubSub fails.

This all seems good to me! @tmatsuo ?

Oh yes we migrated the test to circleci. Let's make sure the test runs on circleci too.

It's reporting failure on run_test_suite.sh, but I'm not sure what it's
trying to tell me. Any hints?:
https://circleci.com/gh/GoogleCloudPlatform/php-docker/101#tests/containers/0
On Mon, Oct 17, 2016 at 4:43 PM, Takashi Matsuo<EMAIL_ADDRESS>wrote:

Oh yes we migrated the test to circleci. Let's make sure the test runs on
circleci too.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/php-docker/pull/152#issuecomment-254366534,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALCi2-ZEvNmjGK4Hkdtx6u1iN7KmXk7tks5q1Ag0gaJpZM4KZLec
.

Never mind, fixed. (It was a whitespace indent issue)
On Mon, Oct 17, 2016 at 5:02 PM, David Eustis<EMAIL_ADDRESS>wrote:

It's reporting failure on run_test_suite.sh, but I'm not sure what it's
trying to tell me. Any hints?:
https://circleci.com/gh/GoogleCloudPlatform/php-
docker/101#tests/containers/0
On Mon, Oct 17, 2016 at 4:43 PM, Takashi Matsuo<EMAIL_ADDRESS>wrote:

Oh yes we migrated the test to circleci. Let's make sure the test runs on
circleci too.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/php-docker/pull/152#issuecomment-254366534,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALCi2-ZEvNmjGK4Hkdtx6u1iN7KmXk7tks5q1Ag0gaJpZM4KZLec
.

All passing now

On circleci, e2e test is not running because there is no credentials file (it is expected because the PR is coming from other repo), but other tests are passing.
Thanks!

The test succeeded for the pull request and failed with a push. It says:

Error response from daemon: Conflict: Tag gcr.io/php-mvm-a/php-nginx:circle-105 is already set to image fad505991773, if you want to replace it, please use -f option

@deustis
WDYT?

-f was deprecated in Docker 1.10 and removed in Docker 1.12:
https://docs.docker.com/engine/deprecated/
Maybe docker client needs to be updated in Circle CI tests?
On Tue, Oct 18, 2016 at 10:38 AM, Takashi Matsuo<EMAIL_ADDRESS>wrote:

The test succeeded for the pull request and failed with a push. It says:
Error response from daemon: Conflict: Tag gcr.io/php-mvm-a/php-nginx:
circle-105 is already set to image fad505991773, if you want to replace
it, please use -f option
@deustis https://github.com/deustis
WDYT?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/php-docker/pull/152#issuecomment-254582660,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALCi2_wkmsFF5HxuLajjFE54JYQ24igNks5q1QQygaJpZM4KZLec
.

@deustis We're just using pre-installed docker on Circle CI. I will add -f on CircleCI for a temporary workaround.

@tmatsuo, ok. Just so you are aware, the -f does cause failures on Travis CI:
+docker tag -f gcr.io/deustis-php-docker/php-base:test php-base
unknown shorthand flag: 'f' in -f
See 'docker tag --help'.


DataCollector for the symfony toolbar

see also https://github.com/egeloen/IvoryHttpAdapterBundle/blob/master/DataCollector/IvoryHttpAdapterDataCollector.php and https://github.com/misd-service-development/guzzle-bundle/blob/master/DataCollector/GuzzleDataCollector.php
i think this will also need to use some tags to discover additional clients that are defined as service.

Can be done with a plugin i think, or a decorator if we don't want to depend on the plugin system

i think using the plugin system is good. my idea for the bundle is that it helps with plugins anyways.

With the History plugin this could easily be done. Another possibility is using AOP to catch all the HttpClient calls. It would be more generic and it would not require to add a plugin.
http://go.aopphp.com/

aopphp sounds interesting, but could have a rather massive impact on the
rest of the application. i think the History plugin is exactly what we want.
we need to have a system to active plugins into clients anyways, so this
should be no big deal to use it.

I was thinking some sort of StandalonePluginClient, which transform only one Plugin into an HttpClient / HttpAsyncClient (like the DataCollector thing will only add this with the HistoryPlugin to the actual HttpClient when in debug mode / toolbar activated)

What if the http client itself is already a plugin client? Also, I think it is not generic: you might be able to create an http client service without httplug bundle.
Although I agree that AOP could have an impact on the application itself, not sure if the history plugin is generic enough. That said, I agree it would be much nicer.
What if the AOP solution is placed in a separate bundle? Like HttplugDebugBundle? That would only be enabled in development mode, so that the impact on the production application would be zero. Does that make any sense?

i will try to get a first thing working at all, first :-)
the aop debug thing should probably not be limited to symfony. but i am
not sure, feels like going very far. the approach of the guzzle bundle
is to tag every client service as guzzle client, so that plugins can be
added in debug env.

Ok, I think this AOP thing is not top prio. It is rather something when you give a new game to the kid: he/she wants to play with it all the time. :stuck_out_tongue:

Is this solved?

fixed in #19


Modal isn't centered in mobie devices

If you try to open a modal in a mobile device or a table the modal isn't shown property.

I've done a fairly large rewrite since this issue was originally filed; Looks like 23f5ca702a1dbdf2a8da14133e608228448fcfb5 is what was on mainline when this ticket was issued.
Let me know if this is still a problem. I did some quick testing on my iPhone and everything seems to work okay.

Resolving. Feel free to reopen if this is still an issue


Add experimental section to RELEASES.md

To highlight some of the new features in v1.7 and set appropriate expectations for their use.

/retest


NullPointerException at com.badlogic.gdx.graphics.Mesh.dispose (Mesh.java:523)

The issue is reported on Google Play Console on Samsung Galaxy A5(2017) (a5y17lte), 3072MB RAM, Android 7.0.
Reproduction steps/code
I don't have this device and with mine I don't have this issue but it happens regularly with users with the device mentioned above.
Apparently the crash occurs when I call dispose on the SpriteBatch I used. And the spritebatch.dispose() is performed in the pause() function of the application.
In SpriteBatch.java apparently variable mesh is null. How is it possible ?
public void dispose () {
	mesh.dispose();
	if (ownsShader && shader != null) shader.dispose();
}

Version of LibGDX and/or relevant dependencies
gdxVersion = '1.9.7'
Stacktrace
java.lang.NullPointerException:
at com.badlogic.gdx.graphics.Mesh.dispose (Mesh.java:523)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.dispose (SpriteBatch.java:1033)
at com.API_libGDX.Jsr239.P_CRenderer.dvaOnSurfaceDestroyed (P_CRenderer.java:771)
at com.API_libGDX.P_CMainApp.onWindowFocusChanged (P_CMainApp.java:338)
at com.Game.common.MainApp.pause (MainApp.java:155)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame (AndroidGraphics.java:506)
at android.opengl.GLSurfaceView$GLThread.guardedRun (GLSurfaceView.java:1562)
at android.opengl.GLSurfaceView$GLThread.run (GLSurfaceView.java:1262)
Please select the affected platforms

[ X] Android
[ ] iOS (robovm)
[ ] iOS (MOE)
[ ] HTML/GWT
[ ] Windows
[ ] Linux
[ ] MacOS

https://github.com/libgdx/libgdx/wiki/Issue-Tracker
Calling dispose() in the pause() method is not something you should do.

That's good to know.
:-)


add ReactionType to http module without redundant animated property

just easier to make if there are no redundant properties to pass in

Addressed comments


Banana Cake Pop .Net middleware not working anymore

Is there an existing issue for this?

[X] I have searched the existing issues

Product
Banana Cake Pop
Describe the bug
Since the Upgrade to 13.5.1, the .Net middleware of Banana Cake Pop stopped working, in production; when running the application in release/debug it's working;
Steps to reproduce

Cut off internet ?

The server does not have internet;
Version
13.5.1

BCP by default is hosted on a CDN and we use YARP to refer to these CDN resources.
This means that you always will get the newest version of BCP served from a CloudFlare CDN. If that is not feasible for your setup you can pin the BCP version to the bundled one in the AspNetCore Package.
app.MapGraphQL().WithOptions(
    new GraphQLServerOptions
    {
        Tool = {
            ServeMode = GraphQLToolServeMode.Embedded
        }
    });


Add time-to-live / automatic tile expiry to sqlite cache backend

Changes in this pull add a new allowable configuration value ttl to the sqlite-type cache and modify the load_tile / load_tiles methods to no longer find tiles older than this ttl.
This is an automatic expiry time in seconds (comparable to redis-type cache default_ttl). For continuity, the default is zero, and is interpreted to mean infinite time-to-live / unlimited tile reuse.
Ttl-based expiry produces rolling, demand-driven automatic tile renewal, reducing the scenarios that would otherwise demand seed tasks.

Thanks for this nice feature!


Not sure if relevant, but i found a project 0 github fork(?) with all the offsets

https://github.com/GeoSn0w/iOS-10.1.1-Project-0-Exploit-For-Jailbreak---F.C.E.-365-Fork-
As the title says, i found a project 0 exploit from GeoSn0w with all the offsets and such, but im not sure if it can be inplemented or even used.


add Traditional Chinese

Sorry, just a little busy , update late .

@voisen Can you please also do app store text localization, I also need to put that in App Store Description.

You can give to the translated text to send to me, I help you to translate in Chinese language to give it to you.
你可以把要翻译的文本发送给我, 我帮你用中国的语言来翻译给你.

在 2016年10月18日，下午3:41，Mohd Iftekhar Qurashi<EMAIL_ADDRESS>写道：
@voisen https://github.com/voisen Can you please also do app store text localization, I also need to put that in App Store Description.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/hackiftekhar/IQScreenRuler/pull/5#issuecomment-254431036, or mute the thread https://github.com/notifications/unsubscribe-auth/ARL1QISXb-vFJ-9TkY_cE8NVTcZvSXB7ks5q1HglgaJpZM4KZdoe.

IQScreenRuler When the running of the iOS 9.3.5 , click    will exit.

在 2016年10月18日，下午3:41，Mohd Iftekhar Qurashi<EMAIL_ADDRESS>写道：
Merged #5 https://github.com/hackiftekhar/IQScreenRuler/pull/5.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/hackiftekhar/IQScreenRuler/pull/5#event-827053623, or mute the thread https://github.com/notifications/unsubscribe-auth/ARL1QFNPH3F6YKX4YhCOAyNmjM26SLroks5q1Hg0gaJpZM4KZdoe.