I'm trying to analize getblocktemplate that is returned by Bitcoin Core. If I'm not wrong that data that is returned contain all required data that I need to start mining. But what about the list of transactions? Even if block is currently mining, number of transaction still grows so for that same block if I again execute getblocktemplate I will receive extended list of transaction so that should change Merkel Chain and AFAIK it's used for building new block hash. So in that case how it is possible to solve a block?
As a miner, you get to choose which transactions you include in a block. Ideally, you would choose the set of transactions which maximises your incoming transaction fees, but you may choose any set of transactions you like (including none).