##### SUMMARY
If you have executable files in your source code they are not kept in the tarball.

Could be related to https://github.com/ansible/ansible/blob/99d7f150873011e7515851db9b44ff486efa9d77/lib/ansible/galaxy/collection.py#L763

This was noticed as I had some auxiliary scripts in my repo.

Need to also consider scripts in `files/` if/when Collections support roles.

This seems to fail the "principal of least suprise"

**Proposal 1: Keep on stripping executable flags**

Add some line to the output
`WARNING: tests/coverage.sh: source file has executable flag, though this will be ignored in generated tar.gz`
Update developing a collection documentation page
Update integration tests to ensure that executable mode is always stripped.
Update code to link to this issue

**Proposal 2: Allow executible flags**

Update developing a collection documentation page
Update integration tests to ensure that executable mode is preserved
Update code to link to this issue
Changelog


##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ansible-galaxy

##### ANSIBLE VERSION
```paste below
2.10
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

<!--- HINT: You can paste gist.github.com links for larger files -->


collection_tar = collection_artifact[1]
    output_path = os.path.join(os.path.split(collection_tar)[0], b'output')
    collection_path = os.path.join(output_path, b'ansible_namespace', b'collection')
    mock_display = MagicMock()
    monkeypatch.setattr(Display, 'display', mock_display)
    mock_download = MagicMock()
    mock_download.return_value = collection_tar
    monkeypatch.setattr(collection, '_download_file', mock_download)
    monkeypatch.setattr(galaxy_server, '_available_api_versions', {'v2': 'v2/'})
    temp_path = os.path.join(os.path.split(collection_tar)[0], b'temp')
    os.makedirs(temp_path)
    meta = api.CollectionVersionMetadata('ansible_namespace', 'collection', '0.1.0', 'https://downloadme.com',
                                         'myhash', {})
    req = collection.CollectionRequirement('ansible_namespace', 'collection', None, galaxy_server,
                                           ['0.1.0'], '*', False, metadata=meta)
    req.install(to_text(output_path), temp_path)
    # Ensure the temp directory is empty, nothing is left behind
    assert os.listdir(temp_path) == []
    actual_files = os.listdir(collection_path)
    actual_files.sort()
    assert actual_files == [b'FILES.json', b'MANIFEST.json', b'README.md', b'docs', b'playbooks', b'plugins', b'roles']
    assert mock_display.call_count == 1
    assert mock_display.mock_calls[0][1][0] == "Installing 'ansible_namespace.collection:0.1.0' to '%s'" \
        % to_text(collection_path)
    assert mock_download.call_count == 1
    assert mock_download.mock_calls[0][1][0] == 'https://downloadme.com'
    assert mock_download.mock_calls[0][1][1] == temp_path
    assert mock_download.mock_calls[0][1][2] == 'myhash'
    assert mock_download.mock_calls[0][1][3] is True
def test_install_collections_from_tar(collection_artifact, monkeypatch):