Repository: feast-dev/feast

Issue:
Feast setup script returns "'charmap' codec can't decode byte" on Windows
## Expected Behavior

`pip install -e "sdk/python[ci]"` must succeed and install feast package in editable mode.

## Current Behavior

Installation error:

```
Obtaining file:///C:/Users/<username>/Downloads/feast/sdk/python
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: 'C:\Users\<username>\Downloads\feast\venv\Scripts\python.exe' 'C:\Users\<username>\Downloads\feast\venv\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' get_requires_for_build_wheel 'C:\Users\<folder_name>\AppData\Local\Temp\tmpwd6unq88'
       cwd: C:\Users\<username>\Downloads\feast\sdk\python
  Complete output (20 lines):
  Traceback (most recent call last):
    File "C:\Users\<username>\Downloads\feast\venv\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 280, in <module>
      main()
    File "C:\Users\<username>\Downloads\feast\venv\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "C:\Users\<username>\Downloads\feast\venv\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 114, in get_requires_for_build_wheel
      return hook(config_settings)
    File "C:\Users\<username>\AppData\Local\Temp\pip-build-env-2u3vtd1l\overlay\Lib\site-packages\setuptools\build_meta.py", line 162, in get_requires_for_build_wheel
      return self._get_build_requires(
    File "C:\Users\<username>\AppData\Local\Temp\pip-build-env-2u3vtd1l\overlay\Lib\site-packages\setuptools\build_meta.py", line 143, in _get_build_requires
      self.run_setup()
    File "C:\Users\<username>\AppData\Local\Temp\pip-build-env-2u3vtd1l\overlay\Lib\site-packages\setuptools\build_meta.py", line 267, in run_setup       
      super(_BuildMetaLegacyBackend,
    File "C:\Users\<username>\AppData\Local\Temp\pip-build-env-2u3vtd1l\overlay\Lib\site-packages\setuptools\build_meta.py", line 158, in run_setup       
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 137, in <module>
      LONG_DESCRIPTION = f.read()
    File "c:\users\<username>\appdata\local\programs\python\python39\lib\encodings\cp1252.py", line 23, in decode
      return codecs.charmap_decode(input,self.errors,decoding_table)[0]
  UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 1599: character maps to <undefined>
```

## Steps to reproduce

Install feast for development:

```
pip install -e "sdk/python[ci]"
```

### Specifications

- Version: Master branch
- Platform: Windows 10
- Python version: 3.9.5
- pip version: 21.3.1
- virtualenv version: 20.10.0

## Possible Solution

`README.md` contains emojis resulting character encoding issues in the package long description. This PR sets package long description encoding to UTF-8.

```python
# README file from Feast repo root directory
README_FILE = os.path.join(repo_root, "README.md")
with open(README_FILE, "r", encoding="utf8") as f:
    LONG_DESCRIPTION = f.read()
```

Pull request #2111


Discussion:

Resolving patch:
diff --git a/sdk/python/setup.py b/sdk/python/setup.py
--- a/sdk/python/setup.py
+++ b/sdk/python/setup.py
@@ -126,7 +126,7 @@
 
 # README file from Feast repo root directory
 README_FILE = os.path.join(repo_root, "README.md")
-with open(README_FILE, "r") as f:
+with open(README_FILE, "r", encoding="utf8") as f:
     LONG_DESCRIPTION = f.read()
 
 # Add Support for parsing tags that have a prefix containing '/' (ie 'sdk/go') to setuptools_scm.


Test patch: