# Demystifying Issues, Challenges, and Solutions for Multilingual Software Development (Artifact)

This is the artifact of the paper *Demystifying Issues, Challenges, and Solutions for Multilingual Software Development* to appear in ICSE 2023.


## 1. Getting started
### Environment preparation
1. Python version: 3.6 or upper version
2. Dependent libraries: scrapy, nltk, pandas, gensim.

Utilize pip install [lib_name] to install the libraries.

---
## 2. Directory structure
```
©À©¤ README.md                                        <- readme file
©¦
©À©¤ICS.zip
©À  ©À©¤ Code                                          <- Code for all tool
©¦  ©¦  ©À©¤ step1 Scrapy tool                          <- Using for crawling posts
©¦  ©¦  ©¦
©¦  ©¦  ©À©¤ step2 LDA topic model                      <- Using for getting development-
©¦  ©¦  ©¦                                                issue-relevant topic words
©¦  ©¦  ©¦
©¦  ©¦  ©À©¤ step3 Random sampling for Codebook         <- Using for randomly getting 
©¦  ©¦  ©¦                                                codebook posts
©¦  ©¦  ©¦                                     
©¦  ©¦  ©À©¤ step4 Random sampling for Coding Process   <- Using for randomly getting 
©¦  ©¦  ©¦                                                coding process posts
©¦  ©¦  ©¦
©¦  ©¦  ©¸©¤ Other analysis scripts                     <- Archived some analysis scripts 
©¦  ©¦                                                   that may not be used in paper 
©¦  ©¦
©¦  ©¸©¤ Data                                          <- Main dataset
©¦     ©À©¤ CodeBook.xlsx                              <- Using for the categorization
©¦     ©¦
©¦     ©À©¤ dataset_10,444posts.csv                    <- Filtering via tags and #vote 
©¦     ©¦                                   
©¦     ©À©¤ dataset_5,565posts.csv                     <- Filtering via topic modeling (LDA) 
©¦     ©¦
©¦     ©À©¤ dataset_1,113posts.csv                     <- Random sampling for coding process
©¦     ©¦   
©¦     ©¸©¤ dataset_586posts.csv                       <- Filtering via coding process
©¦        
©¦ 
©¸©¤ LICENSE.txt                                      <- license file)

```
---
##3.Command line
In setp1 Scrapy tool, we use: *scrapy crawl -o output.csv getQA* start to crawl data from StackOverflow.

###Other recommended command parameters in Scrapy
scrapy bench -- Run quick benchmark test

scrapy check -- Check spider contracts

scrapy crawl -- Run a spider

scrapy edit -- Edit spider

scrapy fetch -- Fetch a URL using the Scrapy downloader

scrapy genspider -- Generate new spider using pre-defined templates

scrapy list -- List available spiders

scrapy parse -- Parse URL (using its spider) and print the results

scrapy runspider -- Run a self-contained spider (without creating a project)

